我无法弄清楚 async
/ await
是如何工作的。我有点理解它,但我无法让它工作。
function loadMonoCounter() {
fs.readFileSync("monolitic.txt", "binary", async function(err, data) {
return await new Buffer( data);
});
}
module.exports.read = function() {
console.log(loadMonoCounter());
};
我知道,我可以使用 readFileSync
,但如果我这样做了,我知道我永远不会理解 async
/ await
我会解决这个问题。
目标:调用 loadMonoCounter()
并返回一个文件的内容。
每次调用 incrementMonoCounter()
(每次页面加载)时,该文件都会递增。该文件包含二进制缓冲区的转储,并存储在 SSD 上。
无论我做什么,我都会在控制台中收到错误或 undefined
。
原文由 Jeremy Dicaire 发布,翻译遵循 CC BY-SA 4.0 许可协议
要使用
await
/async
您需要返回承诺的方法。如果没有像promisify
这样的包装器,核心 API 函数就不会这样做:请注意,
readFileSync
不接受回调,它返回数据或引发异常。你没有得到你想要的值,因为你提供的那个函数被忽略了,你没有捕获实际的返回值。