Javascript: Promises + this
Javascript: Promises + this
这个问题在这里已经有了答案:
考虑以下代码:
foo: function() { var self = this; var p1 = p2 = someFunctionThatReturnsAPromise(); Promise.all([p1, p2]) .then(self.bar); } bar: function(promises) { var self = this; console.log(self); }
输出:
undefined
但如果我做以下更改:
foo: function() { var self = this; var p1 = p2 = someFunctionThatReturnsAPromise(); Promise.all([p1, p2]) .then(function(result) { self.bar(result); }); } bar: function(promises) { var self = this; console.log(self); }
输出:
{ foo: [Function], bar: [Function] }
我不明白为什么在bar函数中第一次调用会更改this指向的位置。有人可以为我解释吗?
admin 更改状态以发布 2023年5月21日