gpt4 book ai didi

angular - 无法获取字符串值的 Observable(angular2/typescript)

转载 作者:太空狗 更新时间:2023-10-29 17:00:06 24 4
gpt4 key购买 nike

我有一个获取对象列表并将其发布到 api 的函数。

该函数返回 Observable,因为调用它的人都希望根据 api 响应从中获取一个字符串。

如果响应良好,我想返回某个字符串,如果响应错误,我想发送一个不同的字符串。

这是我的函数,它返回一个字符串:

public sendUpdate(updatedList: Cars[]): Observable<string> {
return this._myService.updateListNewOrder(updatedList)
.map(response => "The POST worked successfully")
.catch(error => Observable.of("An Error occurred"));
}

所以现在我想调用这个函数并在我的 component.ts 中获取字符串:

messageToDisplay: string;

public updateList() {
this._myService.sendUpdate(this.listToUpdate).subscribe(
res => this.messageToDisplay = res, // onNext
error => this.messageToDisplay = error // onError
);
}

但这不起作用...我没有收到错误。只是 messageToDisplay 未定义。

有人看到问题了吗?

谢谢!

如果你需要它,这是 updateListNewOrder(...):

public updateListNewOrder(newOrderedList: string[]): Observable<ServerResponse> {
let apiURL = "my/api/url";
return this.http.post(apiURL, JSON.stringify(newOrderedList), { headers: this.defaultHeaders() }
);
}

最佳答案

我在这里用我自己的函数重现了你的逻辑,一切正常。你的sendUpdate方法似乎和 subscribe 一样正确功能。所以,RxJS 逻辑对我来说没问题。问题可能出在未公开的另一段代码中。

我发现的唯一问题是 updateListNewOrder 的类型.应该是Observable<Response>而不是 Observable<ServerResponse>如果您使用 @angular/http模块。

关于angular - 无法获取字符串值的 Observable(angular2/typescript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754401/

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