在循环中执行下一个HTTP发布之前,请先完成HTTP发布请求

大假人

我有这个循环,每次循环都会发出一个HTTP发布请求。

for(let i = 1; i < this.data.length; i++) {
      let arr = this.data[i];
      this.http.post('link here', {
        name: arr[0],
        gender: arr[1],
        course: arr[2],
        year: arr[3]
      }).subscribe(
        (data: any) => console.log("succes at " + i),
        error => console.log(error + "at" + arr[0])
      );
    }

但是我发现它不等待HTTP帖子完成才继续前进到下一个循环并执行下一个HTTP帖子。我要实现的是先完成一个HTTP帖子,然后再继续执行下一个执行HTTP帖子的循环。因为我希望保存在数据库中的数据顺序与循环中数组的顺序相同,所以我不会实现这一点。有什么想法怎么做?我正在使用ugug和nodejs btw

用户名

您可以像这样创建一个递归函数

example(i, limit, data) {
    let arr = this.data[i];
    this.http.post('link here', {
        name: arr[0],
        gender: arr[1],
        course: arr[2],
        year: arr[3]
    }).subscribe(
        (data: any) => console.log("succes at " + i),
        error => console.log(error + "at" + arr[0]),
        () => ++i < limit ? this.example(i, limit) : null
    );
}

并开始循环,使用以下命令调用它:

this.example(0, this.data.length, this.data)

这样,在example先前的订阅完成之前,不会调用的下一个迭代

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在切换到下一个路由之前执行http请求

Websocket-等待下一个Pusher事件之前执行HTTP请求回调

如何使用 RxJS 发布事务,以便下一个请求等待前一个请求完成?

在执行下一个操作之前,如何等待请求完成(Xcode 11)

下一个Alamofire发布

如何在Angular 2+中执行多个http请求,但等待每个请求完成后再执行下一个?

如何在Angular 6中的for循环中移至下一个索引之前等待完成订阅

如何在执行下一个操作(获取)之前等待所有请求完成

如何在执行下一个史诗之前确保完成一个史诗?

在下一个循环之前,在For循环中等待回调

在 nodejs 中开始下一个循环之前,等待每个 for 循环迭代完成

Kotlin 在进入下一个索引之前等待 for 循环中的协程

如何在执行下一个命令之前等待并行命令完成(Shell脚本)

在React中执行下一个功能之前如何完成所有提取?

如何在执行下一个之前等待函数完成?

Javascript在执行下一个命令之前不会等待JQuery动画完成

在执行下一个代码之前等待 forkjoin 完成

确保forEach循环在下一个命令js之前完成

在为下一个成员运行循环之前完成任务

将数据传递给 for 循环中的下一个请求

等待请求完成,然后再执行下一个操作

为什么在ngUnsubscribe的“完成”之前“下一个”?

等待循环完成,然后再执行下一个功能

将响应数据从一个 http 请求传递到下一个

绅士,一个等待进程完成的 RxJs 计时器,在下一个间隔之前执行

如何检查for循环中的下一个迭代?

在下一个循环中串联

不转换到 for 循环中的下一个

每个循环中的下一个迭代