首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Promise抛出错误,因为它无法访问此

Promise抛出错误,因为它无法访问此
EN

Stack Overflow用户
提问于 2018-08-07 00:30:43
回答 5查看 172关注 0票数 1

我有一段代码,它使用promises API检查来自我的serviceProvider组件的缓冲函数是否已经完成。可以使用getBufferingStatus()serviceProvider进行轮询。

在使用ensureBufferingHasFinished().then(....).catch(err => console.log(err))时,它显示无法从this.serviceProvider访问该条件

我以前使用过promises,但这是我第一次在这种特殊情况下使用promises。如何将this.绑定到promise?非常感谢大家的帮助!

代码语言:javascript
运行
复制
ensureBufferingHasFinished() {
  return new Promise(function (resolve, reject) {
    (function waitForBufferingComplete(){
        if (!this.serviceProvider.getBufferingStatus()) {
          alert("RESOLVED");
          return resolve();
        }
        setTimeout(waitForBufferingComplete, 250);
    })();
  });
}
EN

Stack Overflow用户

发布于 2018-08-07 01:00:11

试试这个:

代码语言:javascript
运行
复制
    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');
                }                    
            });
          });
        }
票数 -1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51712030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档