GWo*_*ing 39 javascript promise angular-promise
我希望能够调用内部的功能.那么范围,为此,我用的是this.foo()的方式.但是,如果我在内部执行此操作,那么我会收到错误,因为这似乎丢失了.我能做什么?
在该代码中,这将等同于具有该对象的相同的输出这
console.log(this)
one().then(function() {
console.log(this)
})
function one() {
var deferred = $q.defer();
deferred.resolve()
return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
这似乎都不起作用
console.log(this)
var a = this;
one().then(function(a) {
console.log(a)
})
Run Code Online (Sandbox Code Playgroud)
And*_*ndy 51
你的第二个代码示例是正确的方法.因为范围在新函数中this
发生了变化,所以也会发生变化,因此您可以this
在函数外部进行引用.
失败的原因是因为函数正在使用a
您传递给函数而不是a
您在其外部定义的全局函数.
换一种说法:
var a = this;
one().then(function () {
console.log(a)
});
Run Code Online (Sandbox Code Playgroud)