簡體   English   中英

Null 來自嵌套異步 function 的返回值

[英]Null return value from a nested async function

這個 function 如何返回 null? 是因為變量 scope 還是函數的執行時間?

async function getBook() {
      var book;
      await libray.findONe({ cat: 1 }, {}, async (err, res) => {
        await section.findONe({ secId: res.secI }, {}, (error, result) => {
          book = result;
        });
      });
    
      book = result;
    }


return book;
}

嘗試這個

async function getBook() {
      const res = await libray.findOne({ cat: 1 });
      const book = await section.findOne({ secId: res.secI });
      return book;
    }

我認為問題在於您在異步 function 完成之前從 function 返回。 所以解決這個問題的一種方便方法是從異步 function 中進行回調 function。

對不起,我不是一個 js 人,所以我實際上不能發布代碼,但我認為你明白了..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM