下面是我的代码,我收到此错误Unhandled Rejection (TypeError): startPolling.bind(...).then is not a function
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
}
问题:
如果在调用
bind
时未使用startPolling
,则setInterval
不会每2秒执行一次代码。如果我在调用
bind
时使用startPolling
setInterval正在执行它的方式,但是then()
未执行,因为我遇到了上述错误 最佳答案
startPolling.bind
返回一个新函数,该函数在被调用时将调用startPolling
,这又将返回一个promise。如果需要的话,必须是startPolling.bind(null, id)().then
…这显然是胡说八道。
您不能在这里bind
。您以后不能调用函数,而是立即在其返回值上访问属性。使用回调包装器:
setInterval(function () {
startPolling(id).then(...)
}, 2000);