在angular中,HTTP.get函数默认是异步执行的,如果需要改为同步执行,可以使用RxJS中的toPromise()方法和async/await关键字。
具体实现方法:
import { Observable } from 'rxjs/Observable'; import { map } from 'rxjs/operators/map'; import 'rxjs/add/operator/toPromise';
async getSomeData() { const result = await this.http.get(url) .pipe(map(res => res.json())) .toPromise(); console.log(result); }
其中,map()方法可以用来对返回的数据进行转化,将JSON格式的数据转换为Javascript对象格式。需要注意的是,在使用toPromise()方法前,需要导入rxjs/add/operator/toPromise模块。
这样,HTTP.get函数就可以同步执行了。