Angular:如何销毁一个承诺

Angular: how to destroy a promise

本文关键字:一个承诺 何销毁 Angular      更新时间:2023-09-26

在我的词云应用程序中,我有两个指令,一个词云指令和表指令,当词云中的一个词被选中时,它会通知表,所以表也会选择相应的词。字云和表通过驻留在服务中的承诺进行通信,我想销毁这个承诺:

服务代码:

this.selectedDefferd = $q.defer(); 
this.selectedPromise = this.selectedDefferd.promise;
   notifySelect(id)
   {
        this.selectedDefferd.notify({newData: this.data[id]});
    }
 setSelect(callBack) {
    this.selectedPromise.then(null, null, callBack);
}

字云指令代码:

d3.select(this).on("click", function (d) {
...
ctrl.wordService.notifySelect(d.id);
}
表指令

var selectCallback = $(".selected");
wordService.setSelect(selectCallback);

提前感谢,

Harel

使用reject()可以拒绝一个承诺

this.selectedDefferd.reject('Rejected!');

承诺的第二个参数用于拒绝。

promise.then(function(greeting) {
  alert('Success: ' + greeting);
}, function(reason) {
  alert('Failed: ' + reason);
}, function(update) {
  alert('Got notification: ' + update);
});