为了账号安全,请及时绑定邮箱和手机立即绑定

从服务器发送请求的合并映射错误

从服务器发送请求的合并映射错误

呼唤远方 2022-01-13 15:19:42
我有一个角度应用程序,我正在通过服务调用进行发布请求。但我得到一个错误。但是服务调用会发送请求。所以这是一个非常具有误导性的错误。这是我的方法:sendEcheq(patientId: string) {    if (this.sendEcheq.length > 0) {      of(this.echeqsToSend)        .pipe(          mergeMap(echeqsToSend =>            forkJoin(              echeqsToSend.map((echeqFamily) =>                this.echeqSubmissionMedicalService.createSubmissionBatch(1,   {                  echeqFamilies: [                    echeqFamily.family                  ],                  participants: [                   patientId                  ]                }).subscribe(result => {                  console.log(result);                })              )            )          )        )        .subscribe(          result => {            this.dialog.close();            this.snackBar.open('De vcheq(s) zijn verstuurd', 'Ok');          },          error => {            console.error('Server error when assigning vcheq', error);            this.snackBar.open('Er ging iets mis bij het opsturen, probeer het later nog een keer', 'Ok');            this.dialog.close();          }        );    }  }因此,如果我执行 service methdod: createSubmissionBatch 那么它可以工作。但我仍然收到此错误:echeq-selector.component.ts:89 Server error when assigning vcheq TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.    at subscribeTo (subscribeTo.js:41)    at subscribeToResult (subscribeToResult.js:11)    at new ForkJoinSubscriber (forkJoin.js:42)    at Observable._subscribe (forkJoin.js:28)    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:43)    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:29)    at subscribeTo.js:21当然,我首先搜索了这个错误。但我只发现与其他东西相关的andswares
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

您返回的是 aSubscription而不是流,因为您有一个.subscribe打印结果的内部。


您应该将结果通过管道传递给tap操作并在那里打印,因为tap不会修改返回的流。


sendEcheq(patientId: string) {

  if (this.sendEcheq.length > 0) {

    of (this.echeqsToSend)

    .pipe(

      mergeMap(echeqsToSend =>

        forkJoin(

          echeqsToSend.map((echeqFamily) =>

              this.echeqSubmissionMedicalService.createSubmissionBatch(1, {

                  echeqFamilies: [

                      echeqFamily.family

                  ],

                  participants: [

                      patientId


                  ]

              }).pipe(

                  tap(result => console.log(reslult))

              )

          )

        )

      )

    ).subscribe(

      result => {

          this.dialog.close();

          this.snackBar.open('De vcheq(s) zijn verstuurd', 'Ok');

      },

      error => {

          console.error('Server error when assigning vcheq', error);

          this.snackBar.open('Er ging iets mis bij het opsturen, probeer het later nog een keer', 'Ok');

          this.dialog.close();

        }

    );

  }

}


查看完整回答
反对 回复 2022-01-13
  • 1 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号