[英]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.