Angular:如何破坏承诺

时间:2016-07-05 08:51:06

标签: javascript angularjs promise destroy

在我的word-cloud应用程序中,我有2个指令,一个词云指令和表指令,当选择单词云中的单词时,它会通知表,因此表格也将选择相应的单词。单词云和表通过服务中的承诺进行通信,我想破坏承诺:

服务代码:

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的

1 个答案:

答案 0 :(得分:0)

使用reject()可以拒绝承诺

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

承诺的第二个参数是拒绝。

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