嗨,我收到此错误:“从您的效果调用此http请求时,您提供了一个无效对象,该对象应在预期的流中。您可以提供一个Observable,Promise,Array或Iterable”。
deleteAccount(accountId: string): Observable<any> {
return this.http.delete(FUNDING_ACCOUNT_DELETE_URL
.replace(ACCOUNT_ID, accountId)).pipe(
timeout(2000),
catchError(err => {
return err; })
);
}
@Effect()
paymentOptionRemove = this.actions
.ofType(ActionTypes.PAYMENT_OPTION_REMOVE).pipe(
switchMap((action: PaymentOptionRemoveAction) =>
this.service.deleteAccount(action.payload).pipe(
map(
_ => new PaymentOptionRemovedAction()),
// tslint:disable-next-line:arrow-return-shorthand
catchError(err => {
if (err) {
console.log(err);
}
return of(new PaymentOptionRemoveErrorAction());
})
))
);
答案 0 :(得分:1)
应该从deleteAccount
函数返回一个Observable
。在catchError
块中,您尝试返回err
,这是不可观察的。
使用throwError
中的rxjs
:
throwError
是rxjs的一个函数,它创建一个Observable
,仅向订阅者发出错误。专为您的用例而设计。
import { throwError } from 'rxjs';
在删除功能中,使用类似
return throwError(err);