hello,大家好.第一次发帖求助,劳烦并感谢各位大大静心解答
题目是这样的:
我同时请求后台 3 个 API
A,B,C
-
当 A, B, C 皆返回成功
操作 一
-
A, B 成功 C 失败
操作 二 -
A或B 失败 C成功
操作 三
-
A且B且C 失败
返回 500 (error)
如何实现呢? 自己想过实现方案. 用Promise.all来实现,但问题返回失败的时候,我无法得知是A,B还是C返回的。
感谢平台
hello,大家好.第一次发帖求助,劳烦并感谢各位大大静心解答
题目是这样的:
我同时请求后台 3 个 API
A,B,C
当 A, B, C 皆返回成功
操作 一
A, B 成功 C 失败
操作 二
A或B 失败 C成功
操作 三
A且B且C 失败
返回 500 (error)
如何实现呢? 自己想过实现方案. 用Promise.all来实现,但问题返回失败的时候,我无法得知是A,B还是C返回的。
感谢平台
然后调用performance.now(),将该时间与你从后端获取到的数据组装成一个object,然后一起resolve出去,在resolve的回调中将object中对应的时间取出来传给对应的标志位,再通过每个标志位的大小来判断先后,小的就是最早的。
所有请求都做类似的封装
const newFetchA = new Promise(resolved => {
fetchA(params).then(
res => resolved(res),
error => resolved(error)
);
});
// 请求 B,C 同上
然后用熟悉的 Promise.all
慢慢玩去
有关系啊
Promise.all([newFetchA, newFetchB, newFetchC]).then(values => {
// values 判断里面的成员是 res 还是 error 然后做业务
})