angular - 在 Promise 循环中,如何等待请求响应?

标签 angular typescript

我正在尝试制作一个发送请求的循环。

但是,我想在发送下一个请求之前等待收到请求的答复。我该如何继续?

 private start(): Promise<string> {
    return new Promise((resolve, reject) => {
      for (let j = 0, p = Promise.resolve(); j < count; j++) {
        p = p.then(_ => new Promise<null>(res =>
          setTimeout(() => {
            if (j === (count - 1)) {
              resolve();
            } else {
              this.http.get();
              res();
            }
          }, 1000)
        ));
      }
    });
  }

感谢帮助

最佳答案

感谢大家的帮助, 最后,我根据@Capricorn 的回复写了这个

      private start(): Promise<string> {
    return new Promise((resolve, reject) => {
      for (let j = 0, p = Promise.resolve(); j < 10; j++) {
        p = p.then(() => new Promise<null>((res) => {
          this.get().then(() => res());
        }));
      }
    });
  }

  private get(): Promise<string> {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        alert('hello');
        resolve();
      }, 3000);
    });
  }

关于angular - 在 Promise 循环中,如何等待请求响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375298/

相关文章:

angular - 如何将数据传递给 Angular 路由组件?

reactjs - React, typescript 属性 'setState'在类型中丢失

typescript - 如何从 Angular 2 中的 url 获取查询参数?

javascript - Angular 4 : abort all pending $http requests on route change

angular - 使用 featureSelector ngrx 时无法读取未定义 map 的属性

angular - 如何在 Angular 组件中使用 debounceTime?

angular - 在 Angular 组件的 DOM 发生变化后运行一个函数,类似于 ngAfterViewInit

typescript - 为什么在将具有超出属性的对象分配给变量时 TypeScript 不显示错误?

javascript - 如何将变量更改为数组中的下一个字符串

javascript - 如何使用 Jasmine (Angular) 对下载文件进行单元测试?