javascript - 如何在 Node js 中编写 util.promisify 的替代函数?

标签 javascript node.js reactjs promise async-await

我想探索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/

相关文章:

javascript - Google Maps Api V3 - 更改 map div

javascript - jQuery 循环遍历整个元素树以消除内存泄漏和孤立元素

javascript - data-toggle ="dropdown"激活路由重定向而不是 yeoman 中的下拉菜单

node.js - 如何在nodejs和express中的一个地方处理异常

javascript - React Native Image Picker无法读取未定义的属性 "showImagePicker"

javascript - 使用具有多个属性的对象迭代对象数组

javascript - 淡入鼠标悬停 Jquery

javascript - 我的 Node js 安装没有 String.localeCompare 方法。为什么?

javascript - 只改变一个路由参数

javascript - 根据用户输入替换而不是附加?