簡體   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