Observable可以使用subscribe来订阅,但是当遇到多个Observable有相互关系的时候,就有点微妙了。
现在的需求是,有N个请求,我们希望某几个请求先执行,后续请求是在前面请求执行完毕的基础上进行的。怎么办?
我们可以使用forkJoin
操作符。
forkJoin
操作符的作用类似于promise的promise.all()
。forkJoin
操作符接收一个Observable对象列表,然后并行的执行他们。一旦列表的Observable对象都发出值后,forkJoin
操作符返回的Observable对象会发出新的值,即包含所有的Observable对象输出值的列表。例如:
1 | // tradeApi为包装的http服务。方法返回Observable。 |
forkJoin
操作符一个常见的用例是在页面加载(或其他事件)时,希望发起多个请求,并在所有的请求都响应后再采取行动。