如何控制JS Promise流程:单Promise完成与全Promise完成的分支执行
最优解决方案
直接同时发起两个请求并保存各自的Promise实例,分别绑定对应的回调逻辑即可,完全无需重复请求:
// 同时触发两个接口请求,保存对应的Promise对象 const req1 = axios.get(endpoint1); const req2 = axios.get(endpoint2); // 第一个请求完成后立刻执行function1 req1.then(res => { // 可根据需要处理endpoint1的响应数据 function1(res.data); }); // 等待两个请求全部完成后执行function2 Promise.all([req1, req2]).then(([res1, res2]) => { // 这里可以同时拿到两个接口的响应结果 function2(res1.data, res2.data); });
逻辑说明
- 两个请求是同时发起的,不会产生不必要的等待;
req1的then回调会在endpoint1响应后立即执行,完全不依赖endpoint2的状态;Promise.all会自动等待两个请求都完成后,再执行function2的逻辑,确保依赖双接口数据的组件能正确加载;- 全程仅发起一次请求,无冗余操作,完美匹配需求。
内容的提问来源于stack exchange,提问作者LattePrincess
相关产品推荐
相关产品推荐

