我觉得有点奇怪,解决这样的承诺
.then(console.log, console.log)
不起作用,但这可行
.then(d => {
console.log(d);
}, err => {
console.log(err);
});
我缺少什么
答案 0 :(得分:4)
console.log()
函数需要console
对象作为this
的值,否则它将不会/不能正常工作。你通过第二位代码实现了这一点,因为你正常地调用console.log()
。但是,在第一个代码中,您正在“剥离”函数的引用,远离对象本身,所以当promise机制调用函数时,它无法知道它应该安排this
到是console
对象。
您也可以
.then(console.log.bind(console), console.log.bind(console))
虽然那很难看:)