[英]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
函數
await
來解開承諾。 就這樣。 它不限制您可以傳遞給它的值。 因此,即使console.log
是async
您也可以向它傳遞任何值。
打印 promise 值的最簡單方法....
some_promise().then(console.log);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.