我的服务代码如下:
async read() {
let p = await this.http.get('/api/setting').toPromise();
this.data= p.json();
}
我正在如下组件的ngInit()方法中调用该服务方法:
ngOnInit() {
this._settings.read();
this.getAll();
}
我的问题是getAll()
方法与read()
方法同时运行。
但是我想在getAll()
完成后运行read()
方法。我该怎么办?
PS:我的棱角版本是4.2.5,我不想更改它。
答案 0 :(得分:1)
您的read
方法是异步的。您需要像这样await
async ngOnInit() {
await this._settings.read();
this.getAll();
}
答案 1 :(得分:0)
如果确实需要进行同步调用,则始终可以使用纯JavaScript:
public myFunction() {
var r = new XMLHttpRequest();
r.open("GET", 'https://filltext.herokuapp.com/?rows=1&name={firstName}', false);
r.send();
return JSON.parse(r.responseText)[0];
}
答案 2 :(得分:-1)
您可以通过多种方式实现这一目标。一种方法是使用Observable订阅
pmatch("me", c("mean", "median", "mode"))
[1] NA # returns NA instead of 1,2 since multiple partial matches
pmatch("mo", c("mean", "median", "mode"))
[1] 3 # since single partial match