nodejs如何从异步回调函数返回想要的值

Posted 与鲸同游

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs如何从异步回调函数返回想要的值相关的知识,希望对你有一定的参考价值。

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"}
})()

顺便把异步的问题也解决了。

以上是关于nodejs如何从异步回调函数返回想要的值的主要内容,如果未能解决你的问题,请参考以下文章

node js - 当函数依赖于内部的异步函数时,如何从函数返回值

nodejs基础 -- 回调函数

nodejs学习笔记 --回调函数

Nodejs学习笔记

NodeJs异步的执行过程

如何优雅的处理Nodejs中的异步回调