簡體   English   中英

Console.log 並等待

[英]Console.log and await

我注意到console.log(await some_promise()); 工作正常,但如果我創建自己的日志 function 它不起作用,它說等待只在異步函數中工作。 但是它怎么會在 console.log() 中起作用呢? 如果 console.log 是異步的,那么它怎么能在沒有承諾的情況下工作呢?

但是它是如何在 console.log() 中工作的

它沒有。 傳遞給函數的參數總是調用函數之前求值。 await some_promise()調用console.log之前被評估,而不是其中。 console.log不是async 你的代碼相當於

const result = await some_promise();
console.log(result);

或者

some_promise.then(result => console.log(result))

console.log對傳遞給它的值來自承諾的事實一無所知。

如果 console.log 是異步的,那么它如何在沒有承諾的情況下工作?

async函數

  1. 返回一個承諾
  2. 允許您使用await來解開承諾。

就這樣。 它不限制您可以傳遞給它的值。 因此,即使console.logasync您也可以向它傳遞任何值。

打印 promise 值的最簡單方法....

some_promise().then(console.log);

暫無
暫無

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

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