gpt4 book ai didi

javascript - 循环 ajax 请求,直到它在 Promise.all 中返回响应

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

    processUpdate() {
const {number} = this.props;

Promise.all([
getList('PDF'),
getName()
]).then(([list, name]) => {

this.setState({list, name});
}).catch((error) => {

ErrorService.setPageError('Eeerr');
throw error;
});
}

getList('PDF') API 调用返回空数组 2-3 分钟。一段时间后,列表在服务器上准备就绪,然后服务器返回一个数组。我需要每 10 秒循环一次 getList('PDF') 调用,直到响应不为空。

我想在 Promise.all 中执行此操作,可以吗?谢谢

最佳答案

不,你不应该在 Promise.all 中执行此操作,这与它无关。您只需要一种递归方法来轮询,直到结果不再为空:

function getListResult(id) {
return getList(id).then(result => result.length ? result : getListResult(id));
}

processUpdate() {
return Promise.all([
getListResult('PDF'),
// ^^^^^^
getName()
]).then(([list, name]) => {
this.setState({list, name});
}, error => {
ErrorService.setPageError('Eeerr');
throw error;
});
}

顺便说一句,如果您通过重新抛出错误来拒绝它,请不要忘记从您的方法中返回 promise 。

关于javascript - 循环 ajax 请求,直到它在 Promise.all 中返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928354/

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