const fs = require(‘fs‘) let read=()=>{ fs.readFile("./contents/test.json",(err,data)=>{ return JSON.parse(data.toString()) }) } (()=>{ let result = read() console.log(result) //undefind })()
我们想从一个回调函数返回一个我们想要的值,如果按照上面的写法我们始终只能拿到undefind。
解决的办法也很简单,如下。
const fs = require(‘fs‘) let read=async ()=>{ return new Promise((resolve,reject)=>{ fs.readFile("./contents/test.json",(err,data)=>{ if(err) reject(err) resolve(JSON.parse(data.toString())) }) }) } (async ()=>{ let result =await read() console.log(result) //{msg:"ok"} })()
顺便把异步的问题也解决了。
原文地址:https://www.cnblogs.com/BlackFungus/p/12329550.html
时间: 2024-11-01 11:16:19