gpt4 book ai didi

javascript - 使用 `Observable` 代替 `$q.all`

转载 作者:行者123 更新时间:2023-11-30 20:33:05 26 4
gpt4 key购买 nike

你好,我有一个现有的 Angular 1.6.x 项目,我在其中做了类似的事情

var defer1 = $q.defer();
var defer2 = $q.defer();
$http.get(refTrustUrl).then(function (res) {
// some code here
defer1.resolve(true)
}, function () {
});
$http.get(candTrustUrl).then(function (res) {
// some code here
defer2.resolve(true)
}, function () {
});


$q.all([defer1.promise, defer2.promise]).then(function () {
// some code here
})

现在我必须将这个项目迁移到 Angular 4/5Observable 中是否有任何工作可以匹配 $q.all< 的功能注意:我阅读了有关 Observable.forkJoin 的内容,但没有找到任何地方我做了类似的事情:

 Observable.forkJoin(
this.http.get(refTrustUrl, {responseType: 'text'}),
this.http.get(candTrustUrl, {responseType: 'text'})
).subscribe(
data=>{
console.log(data,1)
}
)

但是没有用。请帮忙谢谢...我引用了这个 link研究forkJoin

最佳答案

您的代码应该是这样的(来自您提供的链接)。

Observable.forkJoin(
this.http.get(refTrustUrl).map((res:Response) => res.json()),
this.http.get(candTrustUrl).map((res:Response) => res.json())
).subscribe(
data => {
this.refTrust = data[0]
this.candTrust = data[1]
},
err => console.error(err)
);

你能试试看它是否有效吗?

而且您也不需要像这样订阅内部流。

Observable.forkJoin(
this.http.get(refTrustUrl, {responseType: 'text'})
.subscribe(res => {

完成所有转换后,您应该在最后订阅。

关于javascript - 使用 `Observable` 代替 `$q.all`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130078/

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