首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: finalizer.unsubscribe不是一个函数角离子

TypeError: finalizer.unsubscribe不是一个函数角离子
EN

Stack Overflow用户
提问于 2022-11-05 12:31:22
回答 1查看 39关注 0票数 0

我似乎有一个问题,张贴到api,我知道我正在使用一个基类,但我不知道如何纠正下面的问题。

任何帮助都很感激。

代码语言:javascript
复制
    core.mjs:7635 ERROR Error: Uncaught (in promise): UnsubscriptionError: 1 errors occurred during unsubscription:
1) TypeError: finalizer.unsubscribe is not a function
Error
    at _super (createErrorClass.js:4:26)
    at new UnsubscriptionErrorImpl (UnsubscriptionError.js:3:5)
    at OperatorSubscriber.unsubscribe (Subscription.js:55:23)
    at OperatorSubscriber.unsubscribe (Subscriber.js:55:19)
    at OperatorSubscriber.unsubscribe (OperatorSubscriber.js:51:19)
    at OperatorSubscriber._complete (OperatorSubscriber.js:42:26)
    at OperatorSubscriber.complete (Subscriber.js:49:18)
    at Observable.<anonymous> (job.service.ts:248:16)
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (asyncToGenerator.js:3:1)
    at resolvePromise (zone.js:1262:35)
    at zone.js:1169:21
    at zone.js:1185:37
    at asyncGeneratorStep (asyncToGenerator.js:6:1)
    at _next (asyncToGenerator.js:25:1)
    at _ZoneDelegate.invoke (zone.js:409:30)
    at Object.onInvoke (core.mjs:26231:33)
    at _ZoneDelegate.invoke (zone.js:408:56)
    at Zone.run (zone.js:169:47)
    at zone.js:1326:38

有问题的代码,

代码语言:javascript
复制
return Observable.create(async (observer) => {
      const result = await this.convertNativeImagesToBase64(isMobile);
      observer.next(result);
      observer.complete()
    }).pipe(
      mergeMap(() => {

        return this.apiService.sendIssue(payload).pipe(map((response: any) => {
    
            return response;
          },
        ));
      }),
      catchError((error) => {
        const errorMessage = this.getErrorMessage(error, "Failed.");
        const failed: any = { Success: false, Message: errorMessage };
        return throwError(failed);
      })
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-05 12:50:30

由于你什么都不回,所以问题就在Observable.create身上。尝试另一个接线员以求承诺

代码语言:javascript
复制
return from(this.convertNativeImagesToBase64(isMobile)).pipe(
      mergeMap(() => {

        return this.apiService.sendIssue(payload).pipe(map((response: any) => {
    
            return response;
          },
        ));
      }),
      catchError((error) => {
        const errorMessage = this.getErrorMessage(error, "Failed.");
        const failed: any = { Success: false, Message: errorMessage };
        return throwError(failed);
      })
    )

或者用defer使承诺懒惰,等待订阅,而不是巧妙地执行。

代码语言:javascript
复制
return defer(() => this.convertNativeImagesToBase64(isMobile)).pipe(
      mergeMap(() => {

        return this.apiService.sendIssue(payload).pipe(map((response: any) => {
    
            return response;
          },
        ));
      }),
      catchError((error) => {
        const errorMessage = this.getErrorMessage(error, "Failed.");
        const failed: any = { Success: false, Message: errorMessage };
        return throwError(failed);
      })
    )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74327705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档