gpt4 book ai didi

javascript - forkJoin 中的日志行未被调用

转载 作者:行者123 更新时间:2023-12-03 10:01:57 27 4
gpt4 key购买 nike

我有一个方法。

private getData() {
console.log('Begin');
const sub1 = this.http['url1'].get();
const sub2 = this.http['url2'].get();
const sub3 = this.http['url3'].get();
const sub = forkJoin([sub1, sub2, sub3]).subscribe(([res1, res2, res3]) => {
console.log('fork join');
this.list1 = res1 as ProjectDto[];
this.list2 = res2 as Array<MyTest>;
this.list3 = res3 as Array<MyTest>;
sessionStorage.setItem('a', JSON.stringify(this.list1));
sessionStorage.setItem('b', JSON.stringify(this.list2));
sessionStorage.setItem('c', JSON.stringify(this.list3));
console.log('set items');
});
console.log('Completed');
}

方法被调用。然而 forkJoin 中的两行日志根本没有被调用。所以我不知道我是否成功从服务中获取数据。我使用 rxjs 5.5.6。

更新:

不好意思,我刚刚发现它们实际上是打印出来的,因为服务花了很长时间。所以问题就变成了如何同步打印日志。现在他们首先打印 BeginCompleted

最佳答案

subscribe的第三个参数会接受一个回调,当流完成时会被调用

 const sub = forkJoin([sub1, sub2, sub3]).subscribe(([res1, res2, res3]) => {
console.log('fork join');
this.list1 = res1 as ProjectDto[];
this.list2 = res2 as Array<MyTest>;
this.list3 = res3 as Array<MyTest>;
sessionStorage.setItem('a', JSON.stringify(this.list1));
sessionStorage.setItem('b', JSON.stringify(this.list2));
sessionStorage.setItem('c', JSON.stringify(this.list3));
},null,()=>console.log('complete'));

关于javascript - forkJoin 中的日志行未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60893409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com