gpt4 book ai didi

javascript - 端点异步轮询

转载 作者:行者123 更新时间:2023-12-02 23:32:58 25 4
gpt4 key购买 nike

我对如何实现一个函数来轮询某个 HTTP 端点直到得到某个结果(即端点更新)感到有点困惑,但我希望它每 x 秒发送一个请求,并且当第一个返回“正确”响应的进程,我想停止/放弃所有其他进程并使用我得到的响应。

这意味着在任何给定时间都可能有多个“正在进行中”的请求,我不确定如何实现这一点,即在发出另一个请求之前不等待先前请求的响应。

我正在使用 request 模块,该模块本质上已经是异步的,但我不确定如何每 x 秒“触发”一次请求,而无需等待之前的请求完成。

最佳答案

您可以使用setInterval。像这样的事情可能会起作用:

function pollIt() {
return new Promise(resolve => {
let done = false;
const interval = setInterval(async () => {
if(done) {
return;
}
const req = await fetch('/test');
if(done) {
return;
}
if(req.status === 200) {// assuming HTTP 200 means "OK", could be something else
done = true;
clearInterval(interval);
resolve(await req.json());
}
}, 1000)
});
}

关于javascript - 端点异步轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412825/

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