繁体   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