为什么我的异步Await不能在NodeJS中工作



试图在NodeJS中执行一个基本的异步/等待,但仍然出现故障。

我试图运行的代码:

var fs = require('fs');
var stringData;
async function find(context) {
try {
let text = await readFile('./sql/test.sql', context);
} catch (e) {
console.log('Try/Catch Error: ' + e)
}
console.log('display')
console.log('display ' + JSON.stringify(text))
return
}
async function readFile(file, context) {
new Promise((resolve) => {
fs.readFile(file, (error, data) => {
if (error) {
throw error;
}
stringData = data.toString()
}),
(err) => {
console.log('ERROR: ' + JSON.stringify(err));
}, () => {
resolve(1);
}
})
};
module.exports.find = find;

当我运行上面的操作时,我得到了console.log文本的未定义结果。

我希望文本在向下移动到控制台日志之前使用wait来填充。

看起来您没有用从data.toString();获得的结果来解决承诺您需要添加resolve(stringData)

PS。在您使用resolve的错误处理程序中,您可能应该使用reject那里的

最新更新