我的提供者中有一个observable
,可以通过下面的promise
方法示例转换为toPromise()
:< / p>
getAllProvinces() {
return this.http.get(`assets/ph/provinces.json`).toPromise()
}
以及在我的组件中,我将使用 async and await 来返回值异步下面的示例:
async getAllProvince() {
try {
const provinces = await this.registerApi.getAllProvinces
console.log(provinces)
} catch(e) {
console.log(e)
}
// this.registerApi.getAllProvinces().then(response => this.provinces = response).catch(err => console.log(err))
}
如果出现问题,我也想抓住错误。
有人能帮我个忙吗?将我的诺言转换成 async and await 。我仍然没有使用 async and await 。我知道这只是进化承诺。
感谢有人可以帮助您。 预先感谢。
答案 0 :(得分:0)
在
中这样做 getAllProvinces() {
const promise = new Promise<any>((resolve, reject) => {
this.http.get(`assets/ph/provinces.json`).toPromise()
.then((res: string[]) => {
resolve(res);
})
.catch(error => {
reject(error);
});
});
return promise;
}
这会将http请求转换为有角承诺。 剩下的只是一点点改变
async getAllProvince() {
try {
const provinces = await this.nameOftheService.getAllProvinces()
console.log(provinces)
} catch(e) {
console.log(e)
}
}
这将起作用