Joe*_*Joe 14 typescript angular
我有一个函数获取对象列表并将其POST到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"));
}
Run Code Online (Sandbox Code Playgroud)
所以现在我想调用这个函数并在我的component.ts中获取字符串:
messageToDisplay: string;
public updateList() {
this._myService.sendUpdate(this.listToUpdate).subscribe(
res => this.messageToDisplay = res, // onNext
error => this.messageToDisplay = error // onError
);
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用......我没有错误.只是messageToDisplay保持未定义.
有谁看到这个问题?
谢谢!
如果你需要它,这是updateListNewOrder(...):
public updateListNewOrder(newOrderedList: string[]): Observable<ServerResponse> {
let apiURL = "my/api/url";
return this.http.post(apiURL, JSON.stringify(newOrderedList), { headers: this.defaultHeaders() }
);
}
Run Code Online (Sandbox Code Playgroud)
我用自己的功能在这里复制了你的逻辑,一切正常.您的sendUpdate
方法似乎是正确的以及subscribe
功能.所以,RxJS逻辑对我来说没问题.问题可能在于未暴露的另一个代码和平问题.
我发现的唯一问题是它的类型updateListNewOrder
.它应该是,Observable<Response>
而不是Observable<ServerResponse>
如果您使用该@angular/http
模块.
归档时间: |
|
查看次数: |
1587 次 |
最近记录: |