具有多个处理程序的角度承诺

时间:2017-03-14 18:12:31

标签: angular

是否可以为Angular2中的相同Promise提供多个处理程序?例如,如果我正在设计一个服务并希望允许多个客户订阅它并在Promise解决后收到通知?

注意,我不是问如何从服务中返回多个值,也不是在问如何链接Promises。

2 个答案:

答案 0 :(得分:1)

基本思路不是不对then返回的承诺添加回调,而是将它们添加到原始承诺中。这样的事情会做:

let a = [fn1, fn2]; 
let p = new Promise(fn); 
a.forEach(fn => {p.then(fn)});

答案 1 :(得分:0)

let callbacks = [fn1, fn2 ...]
promise.then((resolvedValue) => { 
           callbacks.forEach(fn => fn(resolvedValue)); 
        }