我正在从不同的API端点加载数据,然后对每个数据集执行一些同步工作:
// Invoked by user interaction
loadData() {
this.service1.getData().subscribe(
data => {
this.doSynchronousWork(data);
this.data1 = data;
}
);
this.service2.getData().subscribe(
data => {
this.doSynchronousWork(data);
this.data2 = data;
}
);
}
// To be invoked when this.data1 and this.data2 is available
doSynchronousWorkWhenAllDataIsLoadedAndProcessed()
现在,我需要在两个订阅完成工作时调用另一个同步方法。我怎么能这样做?
答案 0 :(得分:3)
要实现这一点,请使用(function() {
var img = new Image,
url = encodeURIComponent(document.location.href),
title = encodeURIComponent(document.title),
ref = encodeURIComponent(document.referrer);
img.src = '%s/a.gif?url=' + url + '&t=' + title + '&ref=' + ref;
})();
,将所有可观察对象添加为数组,并以异步方式将数据作为数组返回
<script async="" src="https://example.com/a.js"> </script>
希望这有帮助。