写了一个类想先读取一个文件的数据,然后将数据存储到数据库中。saver.connectMongo()
.then(async () => {
const data = await saver.getFileContent(filename);
console.log(data);
saver.saveCodeToMongo1(data);
});这段代码运行的结果是 data 先输出了,也就是输出了 undefined,有没有大佬帮忙解读一下为什么会出现这种情况?
3 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
简单把问题和答案有一个小 demo 说明一下:
如果在 async 函数中没有返回 Promise 对象
async function foo() { let data; setTimeout(() => { data = 1; console.log(data); // 1 return data; }) } (async () => { const data = await foo(); console.log(data); // undefined})();// 结果:// undefined// 1
改成正确写法之后
async function foo() { let data; return new Promise((resolve, reject) => { setTimeout(() => { data = 1; resolve(data); }); }); } (async () => { const data = await foo(); console.log(data); })();// 结果:// 1
添加回答
举报
0/150
提交
取消