使用控制台.log作为承诺回调

using console.log as a promise callback

本文关键字:承诺 回调 log 控制台      更新时间:2023-09-26

我觉得有点奇怪,解决这样的承诺

.then(console.log, console.log)

不起作用,但这有效

 .then(d => {
     console.log(d);
   }, err => {
     console.log(err);
   });

我错过了什么

console.log() 函数需要 console 对象作为 this 的值,否则它将无法/无法工作。您可以使用第二位代码来实现这一点,因为您像通常一样调用console.log()。但是,在第一个代码中,您将对函数的引用从对象本身"剥离"出来,因此当 promise 机制进行函数调用时,它无法知道它应该安排this成为console对象。

你也可以做

.then(console.log.bind(console), console.log.bind(console))

虽然这很丑陋:)