当前位置: 首页 > 知识库问答 >
问题:

按顺序调用observable.subscribe()

东门修文
2023-03-14

我有一个object的数组,我希望循环访问该数组并为每个元素调用服务,但对于每个元素,我希望只有当当前调用成功时才调用下一个元素,除非阻塞其余的。

    onUpload(items: MyItem[]) {
      items.forEach(i => {
        myService.doSomething(i).subscribe(response => {
          // do something with the success item i
          // do the next call for the next item 
        }, error => {
          // handle the error
        })
      })

     }

有没有在序列模式下调用可观察到的数据而不是并行的?

共有1个答案

宋和颂
2023-03-14

使用from从数组中发出值,然后使用contactmap顺序执行可观察值

import { from } from 'rxjs';
import { concatMap } from 'rxjs/operators';

onUpload(items: MyItem[]) {
  from(items)
    .pipe(
       concatMap(item => myService.doSomething(i))
    )
    .subscribe(response => {/* do something with response */});
}
 类似资料:
  • 我正在开发一些关于guvnor插件的规则。e、 g.检查 这个人就是老师。 老师是男性。 男教师为45岁或以上。 我把这三条规则分开处理。但现在我想按顺序调用它们。 比如这个人是老师。插入新的事实男性教师。然后在下一个规则中,在收到的事实中填充教师的年龄。然后检查教师的年龄。 那么我如何在drools-guvnor插件中实现这一点。 我在drools-guvnor5.5插件jboss中使用引导编辑

  • 问题内容: 我想以这种方式进行Ajax调用的堆栈:call(n-1)完成后,call(n)开始… 由于多种原因,我无法使用 async:false : 一些请求可能是 jsonp (最相关) 我还有其他一些可能同时起作用的ajax请求。 浏览器被阻止 我无法以这种方式链接我的请求: 因为请求的数量和参数是根据用户输入动态创建的。 一个小例子说明了我的问题。 您将看到服务器响应顺序是随机的,我要实现

  • 问题内容: 代码示例:http : //jsfiddle.net/MhEPw/1/ 我有两个jQuery Deferred对象。 我希望发生多个“异步”请求-在它们全部运行之后,我希望按指定的顺序运行回调(.done函数)。不幸的是,它们没有按顺序运行。 也许我在这里寻找Deferred无法提供的某些功能? 问题答案: 您需要做的是将您的所有请求链接到一个主延迟对象,并根据其承诺注册所有回调。延迟

  • 我在一个返回一个巨大选择的过程中工作,我不想定义它是如何排序的。我不想从三个字段中选择一个,如果它是升序还是降序,如果三个选项都没有定义,它会默认返回降序中的第一个字段 这边 当然,这不起作用... mysql指责单词DESC和ASC中的错误,我怎么能让这个工作??

  • 问题内容: 我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按Name(varchar)ASC排序记录, 但编号始终是第一位的 这是我的问题的一些示例( 注意。mysql首先用0-9排序记录 ) 我想要的是字母顺序,然后是数字 所需的输出 问题答案: 使用以下子句:

  • 问题内容: 有没有一种方法可以验证在Mockito中是否曾经调用过a? 问题答案: 帮助您做到这一点。