如何将上下文传递到 Javascript promise
How do I pass a context into a Javascript promise
我会第一个承认,我并不总是得到 JS Promises。所以如果这是一个愚蠢的问题,我提前道歉。 =) 鉴于下面的代码,我需要在包含此函数的 class 中设置一个 属性 (即我需要在 fullfullment 方法中调用 "this" 并让它返回到class.
我看到了一些与设置上下文相关的内容,但它们还需要闭包 (()=>{...code..}),这在 Internet Explorer 中效果不佳。我们可以随心所欲地讨厌那个浏览器,但归根结底,它要求此代码在 IE 中运行。
所以我今天的问题是,如何获取传递给下面方法的 this 的引用?
var result = this.saveChanges();
return Promise.resolve(result).then(function (value) {
return value.HasError === false;
}, function (value) {
if (value && value.responseJSON) {
return value.responseJSON.HasError === false;
}
return false;
});
非常感谢您的帮助。
您可以声明一个引用 this 的变量并在函数中使用它。
var self = this;
var result = this.saveChanges();
return Promise.resolve(result).then(function (value) {
self.someProperty = true;
return value.HasError === false;
}, function (value) {
if (value && value.responseJSON) {
return value.responseJSON.HasError === false;
}
return false;
});
我会第一个承认,我并不总是得到 JS Promises。所以如果这是一个愚蠢的问题,我提前道歉。 =) 鉴于下面的代码,我需要在包含此函数的 class 中设置一个 属性 (即我需要在 fullfullment 方法中调用 "this" 并让它返回到class.
我看到了一些与设置上下文相关的内容,但它们还需要闭包 (()=>{...code..}),这在 Internet Explorer 中效果不佳。我们可以随心所欲地讨厌那个浏览器,但归根结底,它要求此代码在 IE 中运行。
所以我今天的问题是,如何获取传递给下面方法的 this 的引用?
var result = this.saveChanges();
return Promise.resolve(result).then(function (value) {
return value.HasError === false;
}, function (value) {
if (value && value.responseJSON) {
return value.responseJSON.HasError === false;
}
return false;
});
非常感谢您的帮助。
您可以声明一个引用 this 的变量并在函数中使用它。
var self = this;
var result = this.saveChanges();
return Promise.resolve(result).then(function (value) {
self.someProperty = true;
return value.HasError === false;
}, function (value) {
if (value && value.responseJSON) {
return value.responseJSON.HasError === false;
}
return false;
});