如何使用async / await正确读取文件?
我无法弄清楚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
在控制台中。
回答:
要使用await
/,async
您需要返回承诺的方法。没有包装器,核心API函数就不会这样做promisify
:
const fs = require('fs');const util = require('util');
// Convert fs.readFile into Promise version of same
const readFile = util.promisify(fs.readFile);
function getStuff() {
return readFile('test');
}
// Can't use `await` outside of an async function so you need to chain
// with then()
getStuff().then(data => {
console.log(data);
})
注意,readFileSync
不进行回调,而是返回数据或引发异常。您没有得到想要的值,因为您提供的该函数将被忽略,并且您没有捕获实际的返回值。
以上是 如何使用async / await正确读取文件? 的全部内容, 来源链接: utcz.com/qa/403837.html