在我的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的
答案 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);
});