首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在每次遇到异常时继续循环,并在完成时中断?

如何在每次遇到异常时继续循环,并在完成时中断?
EN

Stack Overflow用户
提问于 2019-06-02 00:24:17
回答 1查看 29关注 0票数 0

我正在尝试接收promise并使用它更新DOM,但promise抛出异常的可能性为3/ 10。我试图做的是每次抛出异常时都继续尝试,并在没有遇到异常时中断。

我试着创建了一个while循环,它应该在异常时继续,并在成功时中断,但它仍然会重复。我不知道如何让while循环在异步环境中工作。

代码语言:javascript
复制
      for (var i = 1; i < 10; i++) {
        while (true) {
          try {
        this.props.someServer.allMessages(this.state.someId,this.state.input);
        this.setState({input: ''});
          }
          catch (Exception) {
            console.log ("error, exception encountered, trying again.");
            continue;
          }
          break;
          console.log ("success!");
        }
      }

我希望它在每次遇到异常时都会执行try,如果没有抛出异常,则会中断循环(最多尝试10次,以避免无限循环)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-02 00:39:52

您应该在异步函数之前使用await,以便在执行下一条语句之前等待它完成。

代码语言:javascript
复制
await this.props.allMessages(..)

并确保将while循环包装在async函数中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56408457

复制
相关文章

相似问题

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