JavaScript Promise文件读取方法
文件读取的异步方法里,Promise算是比较清爽的一种写法。没有回调地狱,逻辑也更清晰,调试起来轻松多了。你写异步代码的时候要是还在一层层嵌套,那真的该试试这种写法。
Promise 的文件读取方式挺适合用户上传文件、读取配置文件这些场景。用法也简单,一看就懂。比如你可以用FileReader
配合Promise
来包一层:
function readFile(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => resolve(reader.result);
reader.onerror = reject;
reader.readAsText(file);
});
}
用了async/await
之后,代码就更整洁了,基本就像同步一样顺下来写:
async function handleFile(file) {
try {
const content = await readFile(file);
console.log(content);
} catch (err) {
console.error('读取失败', err);
}
}
嗯,这种写法你在做文件预览、读取文本配置的时候都挺方便。尤其是在浏览器环境下,FileReader
已经够用,不用上更重的库。
想多了解异步操作怎么搞得更优雅?你可以看看Chengnuoshu Promise 异步控制工具,还有一些关于Ajax 异步操作和RxJS 异步示例的文章也都蛮实用。
如果你经常用户上传、文件导入之类的功能,建议你把这种Promise
封装方式放进自己的工具库里,调起来方便,用起来也顺手。
503B
文件大小:
评论区