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