实用的小代码 [持续更新]
-
node读文件async方式:
// node API promisify
const { promisify } = require("es6-promisify");
const fs = require("fs");
// 没有 top-level-await,只能包一层
async function main() {
const readFile = promisify(fs.readFile);
const data = await readFile("./data.txt");
console.log(data);
}
main(); -
利用call去调用原型链的方法,讲道理不知道实际中怎么用:
const fun = (item, index) => {
console.log(index);
return item + 1
}
Array.prototype.filter.call([1,2,3,4], fun);
// [1, 2, 3, 4]
// apply方式:
Array.prototype.filter.apply([1,2,3,4,5], [fun]); -
读取blob文件的内容
await blob.text();
这样可以读取文件的文本数据,包括text数据和json文本,需要注意的地方是这个事异步的,必须加上await,因为他返回的是个promise对象。
-
后端返回blob流的时候需要确认文件的格式的时候,忽略filename的后缀,使用blob返回的type(如果有的话)
const objectURL = URL.createObjectURL(new Blob([blob], { type: blob.type }));
// 获取名字
const name1 = content.match(/filename=(.*);/)[1]; // 获取filename的值