gpt4 book ai didi

javascript - Angular "scheduler.schedule is not a function"使用 observable

转载 作者:行者123 更新时间:2023-11-30 09:28:34 29 4
gpt4 key购买 nike

我遇到了一个可观察的问题:

在服务中我有一个函数(在 edit.component 中):

public patchOne(entity: Tier): Observable<any> {

const userData: any = this.httpService.getDataFromLocalStorage(AuthService.LOCAL_STORAGE_USER_TAG);

return this.httpService.patch(`/someurl/${entity.uid}`, {
params: {
user_uid: JSON.parse(userData).userUId,
},
body: entity.createPatchTier(),
}).map((res: any) => {
// TODO : to complete
return {};
}).catch((error: any) => Observable.throw('patchOne - ', error.json().errorMessage || 'Server error'));
}

从组件中调用它(在 edit.component 中):

  onSave() {
if (this.validateFormData()) {
this.tierService.patchOne(this._item).subscribe(() => {
this.appCommunicationService.valid('Success');
}, (error: any) => {
this.appCommunicationService.error(error.message);
});
} else {
this.appCommunicationService.info('Fail');
}
}

从具有此属性的按钮 (ViewComponent.html) 触发:

(click)="component.onSave()"

单击时出现此错误:

ERROR TypeError: scheduler.schedule is not a function
at ErrorObservable.webpackJsonp.../../../../rxjs/observable/ErrorObservable.js.ErrorObservable._subscribe (ErrorObservable.js:72)
[...]
webpackJsonp.../../../../../src/app/components/edit/edit.component.ts.EditTiersComponent.onSave @ edit.component.ts:99
(anonymous) @ ViewComponent.html:14

有什么想法吗?

最佳答案

看起来你在这一行有错误:

.catch((error: any) => Observable.throw('patchOne - ', error.json().errorMessage || 'Server error'));

Observable.throw具有以下签名:

public static throw(error: any, scheduler: Scheduler): Observable

如您所见,第二个参数是调度器。在您的代码中,您提供了第二个参数,因此最终 RxJs 会尝试在您的字符串上调用 schedule (error.json().errorMessage || 'Server error').

您需要更新错误消息以使用字符串连接。例如:

'patchOne - ' + (error.json().errorMessage || 'Server error'))

或者可能使用字符串插值:

`patchOne - ${(error.json().errorMessage || 'Server error')}`

关于javascript - Angular "scheduler.schedule is not a function"使用 observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47773227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com