gpt4 book ai didi

Angular 6 : How to identify forkJoin response

转载 作者:太空狗 更新时间:2023-10-29 18:12:27 27 4
gpt4 key购买 nike

Angular 6:如何使用 forkJoin 识别 api 的响应

reqs = [];
if (shouldUpdatePhone) {
reqs.push(this.customerService.updatePhone(phoneUpdateRequest))
}
if (shouldUpdateAddress) {
reqs.push(this.customerService.updateAddress(addressUpdateRequest))
}

forkJoin(reqs).subscribe(result => {
console.log('result :', result);
//How to know response is from updatePhone and response from updateAddress?
});

如何识别收到的响应属于 updatePhone 和 updateAddress?基于标识,我需要向用户显示消息。

这两个 api 返回数组(2) >

{model:true, code:200, message:null},

{model:true, code:200, message:null}

最佳答案

您可以在每次请求后使用 map 管道将您的响应包装在另一个标识其类型的对象中。就像这样:

reqs = [];
if (shouldUpdatePhone) {
reqs.push(this.customerService.updatePhone(phoneUpdateRequest)
.pipe(map(value => ({type: 'phone', value: value})))
.pipe(catchError(value => of({type: 'phone', failed: true}))))
}
if (shouldUpdateAddress) {
reqs.push(this.customerService.updateAddress(addressUpdateRequest)
.pipe(map(value => ({type: 'address', value: value})))
.pipe(catchError(value => of({type: 'address', failed: true}))))
}

forkJoin(reqs).subscribe(results => {
console.log('result :', results);

for(let result of results){
if(result.type == 'phone'){
if(result.failed)
console.log("Phone failed");
else
console.log("Phone: " + result.value);
}

else if(result.type == 'address'){
if(result.failed)
console.log("Address failed");
else
console.log("Address: " + result.value);
}
}
});

关于 Angular 6 : How to identify forkJoin response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009568/

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