【问题标题】:How can I run my async function in a for loop如何在 for 循环中运行我的异步函数
【发布时间】:2020-05-23 10:58:02
【问题描述】:

我正在尝试运行一个异步函数,该函数将发布请求发送到服务器并将响应记录在控制台中。每当我运行一个 for 循环时,什么都没有发生。我在 stackoverflow 上检查了一个不同的类似问题,但在我的情况下没有任何效果。

注意此代码适用于 ionic + angular for android。

下面是函数的代码。

postAPI(suffixUrl, queryString, data, header: any = {}) {
    // console.log(suffixUrl + "\n=>", queryString + "\n=>", data + "\n=>", header);
    this.isDisabled = true;

    data = (header.is == 'yes') ? JSON.parse(data) : data;

    let type = this.fileNameSubStringFn(suffixUrl, '?');
    return new Promise(resolve => {
        this.http.post(this.con.baseUrl + suffixUrl + queryString, data)
          .subscribe(res => {
            // res = res.json();
            // res = JSON.parse(res.data);
            console.log("RES:", res);
            this.hideLoader();
            resolve(this.data);
            return;
          }, (err) => {
            this.logFn("ERROR:" + JSON.stringify(err));
            this.isDisabled = false;
            // this.isConnected = false;
          });
    });
}

下面是访问上述函数以提交数据的代码。

var i;

for (i = 0; i < summeriesArray.length; i++) {
    this.postAPI('service_summery', '', JSON.stringify(summeriesArray[i]), { is: 'yes', method: 'post' }).then(data => {
                this.hideLoader();
                this.toast("Successfully saved");
                console.log(data);
    });
}

this.postAPI 中的代码没有执行,这意味着数据没有被发布,我没有收到任何错误,所以我不知道这里发生了什么。

我期待 this.postAPI 在 for lop 中成功运行。

谢谢你,用爱发帖。

【问题讨论】:

    标签: node.js angularjs http ionic-framework


    【解决方案1】:

    您可以使用 await 关键字,这样您就可以等待下一次迭代,直到“postAPI”完成。

    for (i = 0; i < summeriesArray.length; i++) {
      const data = await this.postAPI('service_summery', '', JSON.stringify(summeriesArray[i]), { is: 'yes', method: 'post' })
      this.hideLoader();
      this.toast("Successfully saved");
      console.log(data);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      相关资源
      最近更新 更多