gpt4 book ai didi

javascript - .then() 在传递参数时在 setInterval 函数中不起作用?

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

下面是我的代码,我收到此错误 未处理的拒绝(TypeError):startPolling.bind(...).then 不是函数

 setInterval(startPolling.bind(null, id).then(function(response){
if (response.id == 0){
console.log("stop polling")
}
}), 2000)


function startPolling(id){
return callApi('/someUrl/'+id+'','get') // it returns a promise
}

问题: 如果我在调用 startPolling 时没有使用 bind,则 setInterval 不会每 2 秒执行一次代码。

如果我在调用 startPolling 时使用 bind setInterval 会按照它的方式执行,但是 then() 不会执行,因为我出现上述错误

最佳答案

startPolling.bind 返回一个新函数,调用该函数时将调用 startPolling,后者又返回一个 Promise。如果有什么需要的话,那就是 startPolling.bind(null, id)().then...这显然是无意义的。

您无法在此处绑定(bind)。您不能稍后调用函数,但可以立即访问其返回值的属性。使用回调包装器:

setInterval(function () {
startPolling(id).then(...)
}, 2000);

关于javascript - .then() 在传递参数时在 setInterval 函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45504191/

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