我有一段代码,它使用promises API检查来自我的serviceProvider组件的缓冲函数是否已经完成。可以使用getBufferingStatus()对serviceProvider进行轮询。
在使用ensureBufferingHasFinished().then(....).catch(err => console.log(err))时,它显示无法从this.serviceProvider访问该条件
我以前使用过promises,但这是我第一次在这种特殊情况下使用promises。如何将this.绑定到promise?非常感谢大家的帮助!
ensureBufferingHasFinished() {
return new Promise(function (resolve, reject) {
(function waitForBufferingComplete(){
if (!this.serviceProvider.getBufferingStatus()) {
alert("RESOLVED");
return resolve();
}
setTimeout(waitForBufferingComplete, 250);
})();
});
}发布于 2018-08-07 01:00:11
试试这个:
waitForBufferingComplete = function(bufferingSuccess){
if (!this.serviceProvider.getBufferingStatus()) {
bufferingSuccess(true);
}
else{
setTimeout(waitForBufferingComplete, 250);
}
}
ensureBufferingHasFinished() {
return new Promise(function (resolve, reject) {
waitForBufferingComplete(function(isFinishedBuffering){
if (isFinishedBuffering){
resolve('ok');
}
});
});
}https://stackoverflow.com/questions/51712030
复制相似问题