zoukankan      html  css  js  c++  java
  • 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"}
    })()

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

  • 相关阅读:
    Spring
    数据库架构
    Spring
    Spring
    Spring
    服务的有状态和无状态(转)
    Java基础
    Ubuntu
    Ubuntu
    Ubuntu
  • 原文地址:https://www.cnblogs.com/BlackFungus/p/12329550.html
Copyright © 2011-2022 走看看