我想探索nodejs中的util.promisify。我的下面的代码从文件中获取数据,并打印 util.promisify(现在是注释)。我开始编写自己的函数,类似于 Promise,它等待来自数据库或文件的数据,然后返回数据。但我在 console.log 中得到的是空字符串而不是数据。
我是 Node.js 新手。我想在我的重要项目中使用它从数据库获取数据。
const fs=require('fs');
const util=require('util');
function read(file){
var str="";
setTimeout(()=>{
fs.readFile(file,(err,data)=>{
str=data;
})
},2000);
return new Promise((resolve,reject)=>{
resolve(str);
});
}
//const read=util.promisify(fs.readFile);
let promiseArr=[read('/promise/data1.txt'),read('/promise/data1.txt'),read('/promise/data1.txt')];
async function main(){
let [data1,data2,data3]=await Promise.all(promiseArr);
console.log(data1.toString());
console.log(data2.toString());
console.log(data3.toString());
}
main();
最佳答案
可以在这里找到 util.promisfy 工作原理的简单说明:https://medium.com/@suyashmohan/util-promisify-in-node-js-v8-d07ef4ea8c53
function read(file) {
return new Promise((resolve, reject) => {
setTimeout(() => {
fs.readFile(file, (err, data) => {
if (err) reject(err);
resolve(data);
});
}, 2000);
})
}
关于javascript - 如何在 Node js 中编写 util.promisify 的替代函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468055/