如何将上下文传递到 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;
});