问题描述
我正在尝试理解独特的指针如何移动语义。现在,我在下面创建了一个虚拟示例来说明问题所在。我的问题是,为什么这段代码会抛出一个未被释放的指针而未分配错误?:
generateUserCSV() {
this.emailService.getAllEmail().subscribe((res) => { this.downloadFile(res,'emails') })
}
downloadFile(data,filename = 'data') {
let csvData = this.ConvertToCSV(data,['email','firstname','lastname']);
console.log(csvData)
let blob = new Blob(['\ufeff' + csvData],{ type: 'text/csv;charset=utf-8;' });
let dwldLink = document.createElement("a");
let url = URL.createObjectURL(blob);
let isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;
if (isSafariBrowser) { //if Safari open in new window to save file with random filename.
dwldLink.setAttribute("target","_blank");
}
dwldLink.setAttribute("href",url);
dwldLink.setAttribute("download",filename + ".csv");
dwldLink.style.visibility = "hidden";
document.body.appendChild(dwldLink);
dwldLink.click();
document.body.removeChild(dwldLink);
}
ConvertToCSV(objArray,headerList) {
let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
let str = '';
let row = 'Index,';
for (let index in headerList) {
row += headerList[index] + ',';
}
row = row.slice(0,-1);
str += row + '\r\n';
for (let i = 0; i < array.length; i++) {
let line = (i + 1) + '';
for (let index in headerList) {
let head = headerList[index];
line += ',' + array[i][head];
}
str += line + '\r\n';
}
return str;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)