怎么获取异步匿名函数内部的返回值

export default class HController {
    //路由
    Url('/index/index')
    //渲染模板
    Render("home/index.html")
    //调用函数
    index(){
        //这里需要跨域获取值,
        (async function () {
            const fetch = require('node-fetch');
            const res = await fetch('http://www.xxx.com/shop/index.php');
            const json = await res.json();
            //获取的值可以拿到外面使用,其他方法可以实现跨域获取,并能赋给全局变量也可
        })();
    }

}

我该怎么写,才能把json变量的值拿到函数外面使用?

阅读 7.7k
2 个回答
async function fn() {
    const fetch = require('node-fetch');
    const res = await fetch('http://www.xxx.com/shop/index.php');
    const json = await res.json();
    return json;
}
const json = fn()
async function fn() {
    const fetch = require('node-fetch');
    const res = await fetch('http://www.xxx.com/shop/index.php');
    const json = await res.json();
    return json;
}
fn().then((res)=>{  //因为fn返回的是一个promise,所以需要通过调用then方法才能取到值
   const json=res   //你可以在这里赋值,做其它事
   console.log(json)
})

我最近做的基于Vue2.0的仿QQ项目里大量使用了async/await来处理异步,里面写了很多种取得异步函数的返回值的方式,你可以参考一下,地址是:https://github.com/lensh/vue-qq

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题