2017-03-14 22 views
-1

是否有可能爲Angular2中的相同Promise提供多個處理程序?例如,如果我設計了一個服務並希望允許多個客戶訂閱它並在Promise解決時得到通知?有多個處理程序的角度許諾

請注意,我不是問如何從服務中返回多個值,也不是問如何鏈接Promises。

+1

只需調用'then'對當初的諾言,像這樣的'設p =新的承諾(FN); p.then(調用callback1); p.then(callback2);'。這不是鏈接,因爲你將回調添加到最初的承諾中,而不是''然後' –

+0

@Maximus返回的那個 - 並且如果我不知道有多少個回調有多少?我假設我會在數組中存儲回調? – Jack

+0

那麼它會發生什麼變化? 'let a = [fn1,fn2];讓p = new Promise(fn); a.forEach(fn => {p.then(fn)});' –

回答

1

基本思想不是將回調添加到由then返回的承諾中,而是將它們添加到最初的承諾中。類似的東西會做:

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