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

不使用成功/失败块的角度嵌套HTTP调用

令狐灿
2023-03-14
getUsers() {
        this.userService.createSampleUser({ fName: 'surendra', lName: 'tarai' })
            .subscribe(
                next => { },
                error => { },
                () => {
                    this.users$ = this.userService.getUsers('BLR');
                }
            );
    }

共有1个答案

胥和悌
2023-03-14

只需使用switchmap:

this.userService.createSampleUser({ fName: 'surendra', lName: 'tarai' })
    .pipe(switchMap(() => this.userService.getUsers('BLR')))
    .subscribe(users => ...)

编辑:

const createUser$ = this.userService.createSampleUser({ fName: 'surendra', lName: 'tarai' });
const handlingError = catchError(err => of(err); // guarantee flow continuity
const getUsers$ = this.userService.getUsers('BLR');
const stream$ = createUser$.pipe(handlingError, concatMap(() => getUsers$);

stream$.subscribe();

注意,流$subscription将只发出getusers$的结果,如果您想获得所有‘子流’的事件,请使用concat而不是concatmap。

 类似资料:
  • 我尝试从Angular 4向我的Laravel后端发送POST请求。 我的LoginService有以下方法: 我在LoginComponent中订阅了此方法: 这是我的Laravel后端方法: 我的Chrome开发工具说我的请求成功了,有200个状态代码。但是我的Angular代码触发了块,并给我这个消息: 在分析的过程中Http失败http://10.0.1.19/api/login 如果我从

  • 问题内容: 我正在尝试复制嵌套列表,但是 不 使用该函数不知道该如何做。 我用了: 和 但事实证明,它们全都是浅表。 有什么提示吗? 问题答案: 我的模拟输入: 策略:遍历传入对象的每个元素,递归地下降到也可迭代的元素中,并创建相同类型的新对象。 无论它是全面的还是没有错误的,我都不会提出任何主张[1](不要传递引用自己的对象!),但是应该让您入门。 [1]真的!这里的重点是演示,而不是涵盖所有可

  • 我将模板放在*ngIF下,它只在加载表单后生成。此外,我将失败的表单放在动态显示的字段下,这取决于按钮的按下。我注销表单,它会返回正确缺失的FormControl。 模板: 法典: 我只在激活form.controls.something部分时得到错误。如果我删除模板中的form . controls . something . organization部分,效果会很好。 错误:错误:formGr

  • 问题内容: 当我尝试对Spring Boot服务进行Rest调用时遇到了此异常。是什么导致此异常? 信息 描述 例外 根本原因 pom.xml 码 问题答案: (1)在控制器中,您不需要这样做 (2)移除 因为里面 已经包括依赖性。

  • 我用JQuery 2.0.3这样做http post: json在服务器上发布和编写,但是响应和在AFAIK中没有启用。接收json数据的控制器代码为 我如何还能使成功和失败得到发布的json成功接收或提交失败的回调?它可以提交数据,但是来自服务器的响应不做任何事情,这与控制器方法没有区别,只是用语句写入数据。您是否可以建议一个改进,以便发布数据的javascript也接收响应,我认为如果服务器出

  • 问题内容: 具有角形的这种普通(名称属性由服务器要求)形式,无法弄清楚如何使验证有效。我应该在ng-show =“ TODO”中添加什么 http://jsfiddle.net/Xk3VB/7/ ps:这只是一种形式,更复杂 谢谢 问题答案: AngularJS依靠输入名称来暴露验证错误。 不幸的是,到目前为止,不可能(不使用自定义指令)动态生成输入的名称。确实,检查输入文档,我们可以看到name