【发布时间】:2020-02-16 11:11:28
【问题描述】:
我想探索 nodejs 中的 util.promisify。我下面的代码从文件中获取数据并打印 util.promisify 现在是注释。我开始编写自己的函数,类似于 promise,它等待来自 db 或 file 的数据,然后返回数据。但是我在 console.log 中得到的是空字符串而不是数据。
我是节点 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();
【问题讨论】:
-
虽然不需要超时:
function read(file) { return new Promise((resolve, reject) => fs.readFile(file, (err, data) => err ? reject(err) : resolve(data) ) ); } -
顺便说一句,在
main函数中创建promiseArr会更好
标签: javascript node.js reactjs promise async-await