【发布时间】:2021-06-23 16:01:45
【问题描述】:
我是 Angular 的新手,刚接触过 Promise,但据我所知,我应该使用 Observables,但我在这里遇到了一些问题。
所以我承诺执行 GET 请求的代码如下所示:
apiGet(method: any, query: any): Promise<any> {
return new Promise((resolve, reject) => {
var otmAPI =
this.url +
method +
"?apikey=" +
this.API_KEY;
if (query !== undefined) {
otmAPI += "&" + query;
}
fetch(otmAPI)
.then(response => response.json())
.then(data => resolve(data))
.catch(function(err) {
console.log("Fetch Error :-S", err);
});
});
}
到目前为止,我的 Observable 方法如下所示:
getPois(method: any, query: any): Observable<any> {
return this.http.get(this.url +
method +
"?apikey=" +
this.API_KEY).pipe(
tap(data => {
console.log(data)
if (query !== undefined) {
data += "&" + query;
}
})
);
}
我不知道我是否做得正确,但它有效,问题是我无法附加查询。 对于我可以附加它的承诺(if-block 将附加查询) 但是,当我尝试使用管道以 Angular 方式执行此操作然后点击时(老实说,我不知道是使用点击还是地图等)但在这里它不起作用!我收到了错误的请求。
非常感谢您的帮助!
【问题讨论】:
标签: javascript angular typescript promise observable