【发布时间】:2021-07-26 10:22:42
【问题描述】:
我在电子商务网站上工作,我的“cartservice”出现错误,尤其是“checkoutFromCart ()”函数,控制台显示的错误如下:
src/app/services/cart.service.ts:218:81
218 this.http.post(${this.serverUrl}orders/payment, null).subscribe((res: { 成功: boolean }) => {
~~~~~~~
这里声明了“成功”。
错误:src/app/services/cart.service.ts:228:24 - 错误 TS2769:没有重载匹配此调用。 Overload 1 of 5, '(observer?: NextObserver | ErrorObserver | CompletionObserver | undefined): Subscription',给出了以下错误。 '(data: orderResponse) => void' 类型的参数不可分配给 'NextObserver | 类型的参数错误观察者 |完成观察者 |不明确的'。 “(数据:orderResponse)=> void”类型中缺少属性“完成”,但在“CompletionObserver”类型中是必需的。 重载 2 of 5, '(next?: ((value: Object) => void) | undefined, error?: ((error: any) => void) | undefined, complete?: (() => void) | undefined): Subscription',给出了以下错误。 '(data: orderResponse) => void' 类型的参数不能分配给'(value: Object) => void' 类型的参数。 参数 'data' 和 'value' 的类型不兼容。 “对象”类型可分配给极少数其他类型。您的意思是改用“任何”类型吗? “对象”类型缺少“订单响应”类型的以下属性:order_id、成功、消息、产品
228 }).subscribe((data:orderResponse) => { [91m~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/rxjs/internal/types.d.ts:73:5 73完成:()=>无效; ~~~~~~~~ 这里声明了“完成”。
我的代码: checkoutFonction
控制台错误: error
如果问题错了,我很抱歉,我从 stackoverflow 开始,但我需要帮助
对不起,这里的图片是代码:
CheckoutFromCart(userId: number) {
this.http.post(`${this.serverUrl}orders/payment`, null).subscribe((res:{ success: boolean }) => {
console.clear();
if (res.success) {
this.resetServerData();
this.http.post(`${this.serverUrl}orders/new`, {
userId: userId,
products: this.cartDataClient.prodData
}).subscribe((data:orderResponse) => {
this.orderservice.getSingleOrder(data.order_id).then(prods => {
if (data.success) {
const navigationExtras: NavigationExtras = {
state: {
message: data.message,
products: prods,
orderId: data.order_id,
total: this.cartDataClient.total
}
};
this.router.navigate(['/thankyou'], navigationExtras).then(p => {
this.cartDataClient = {prodData: [{incart: 0, id: 0}], total: 0};
this.cartTotal$.next(0);
localStorage.setItem('cart', JSON.stringify(this.cartDataClient));
});
}
});
})
} else {
this.router.navigateByUrl('/checkout').then();
}
})
}
【问题讨论】:
-
getSingleOrder 是 Promise 还是 observable?顺便说一句,您可以使用 rxjs 运算符
switchMap或其他“concat”可观察对象 -
尽量不要发布代码图片,而是将代码粘贴到此处。
标签: javascript angular typescript