在Angular中获得$ q.when

时间:2017-05-09 21:31:10

标签: angular promise rxjs observable

我正在从Angular JS迁移到Angular并寻找$q.when等价物。我已经看过equivalent of $q.when in angular 2但它没有使用Observable。我们可以使用Observable实现这一目标吗?如果没有,实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

$ q.when === Observable.fromEventPattern

  

基于addHandler / removeHandler函数从API创建Observable。

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-fromEventPattern

以下是一个示例:发布DOM文档上发生的点击

function addClickHandler(handler) {
  document.addEventListener('click', handler);
}

function removeClickHandler(handler) {
  document.removeEventListener('click', handler);  
}

var clicks = Rx.Observable.fromEventPattern(
 addClickHandler,
 removeClickHandler
 ) ;
clicks.subscribe(x => console.log(x));

您还可以阅读我的博客 " $ Q映射到RxJS" https://medium.com/@juliapassynkova/q-map-to-rxjs-981936a2b22d

答案 1 :(得分:1)

我想你可以看看有一个'when'运算符的RxJS Observable规范:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/when.md