Typescript/Angular - 在模态结果后调用单独的函数 return

Typescript/Angular - Call separate function after modal result return

当我在 Angular/Typescript 中通过关闭或取消模式返回我的承诺时,我在调用单独的函数时遇到问题。也许我正在尝试做一些不可能的事情,但我见过的所有示例要么将返回的数据记录回控制台或变量,要么发出警报。像这样:

modalInstance.result.then(function (result) {
    console.log(result);
});

我想要做的是在返回结果后调用 separate 函数,例如:

modalInstance.result.then(function (result) {
    console.log(result);
    this.EditWidget(result);
});

但这不起作用,我似乎无法弄清楚原因。我已经尝试了所有方法,但我想我只是遗漏了一些有关 promise 在这里如何工作的信息。

有什么想法吗?

我的猜测是 this 不是您期望的那样。您需要捕获this的值并在回调中使用捕获的值:

var that = this;
modalInstance.result.then(function (result) {
    console.log(result);
    that.EditWidget(result);
});

或将函数绑定到此:

var callback = function (result) {
    console.log(result);
    this.EditWidget(result);
};

modalInstance.result.then(callback.bind(this));