【问题标题】:using console.log as a promise callback [duplicate]使用 console.log 作为承诺回调 [重复]
【发布时间】:2016-06-16 03:05:54
【问题描述】:

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

.then(console.log, console.log)

没用,但是这个有用

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

我错过了什么

【问题讨论】:

  • log 函数需要 console 上下文 - 您在第一个代码中丢失了正确的 this 引用。
  • 谢谢.. 我应该怎么做才能关闭这个 qn?还是删除?
  • 好吧,也许有一个更具体的标题(例如,“使用 console.log 作为承诺回调的奇怪问题”或其他东西)它可能很有用,你或我可以输入一个简短的答案。
  • 请把它写成答案,我会接受的。再次感谢您的帮助

标签: javascript promise ecmascript-6


【解决方案1】:

console.log() 函数需要console 对象作为this 的值,否则它不会/不能工作。您可以通过第二段代码实现这一点,因为您像往常一样调用console.log()。然而,在第一个代码中,您正在从对象本身“剥离”对函数的引用,因此当 promise 机制进行函数调用时,它无法知道它应该安排 this 成为console 对象。

你也可以

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

虽然这很丑:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多