繁体   English   中英

从异步函数中获取返回值

[英]Fetching return value from async function

我试图捕获一个函数中两个服务调用的响应。 知道异步和等待将解决此目的,并在下面进行了尝试。 在异步函数ex的内部-我正在打电话给用户,公司端点和控制台日志显示得很完美,但是通过调用异步函数检索相同的值却给出了Promise Pending。 我尝试了两种选择:1.通过简单地调用async函数-给Promise Pending 2.通过在前缀为await的情况下进行调用-给await是保留字。

请让我知道如何从中捕获响应...

const service = {
        getUsers: () => axios.get(`http://localhost:3000/users`),
        getCompanies: () => axios.get('http://localhost:3000/companies')
      };

      let ex = async () => {
        let users = {};
        let companies = {};
        try {
           users =   await service.getUsers()
           companies = await  service.getCompanies()

          console.log('Example ', {
            users: users.data,
            companies: companies.data
          })

        } catch (err) {
          console.log(err);
        }
        return  [{ users, companies}];
      };
      //let resp = await ex(); - giving await is a reserved word
      // let resp = ex(); - giving Promise is pending.. 
      console.log(resp);

所有async功能将始终返回诺言。 如果不返回任何内容,则该函数将返回undefined的promise。 不管你会返回一个承诺,你需要得到包裹起来await或致电then在里面访问值。

resp.then(console.log)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM