同步http.get angular 2,ionic 2
我对异步http.get有问题。在循环中,我有http.get,我认为——在本例中——更好的方法是同步方法。你怎么认为?我怎样才能解决这个问题 我用离子2 下面是我的代码:同步http.get angular 2,ionic 2,angular,ionic2,Angular,Ionic2,我对异步http.get有问题。在循环中,我有http.get,我认为——在本例中——更好的方法是同步方法。你怎么认为?我怎样才能解决这个问题 我用离子2 下面是我的代码: for (var key in this.beacons) { alert('beacon id: ' + this.beacons[key]['url']); this.http.get('http://website.com/app.php?id=' + this.beacons[key]['url'])
for (var key in this.beacons) {
alert('beacon id: ' + this.beacons[key]['url']);
this.http.get('http://website.com/app.php?id=' + this.beacons[key]['url']).map(res => res.json()).subscribe(
data => {
this.json = data.config;
alert('alert json, id: ' + this.beacons[key]['url']);
}, error => {
this.jsonError = true;
});
if (this.json['id']) {
alert('alert end, id: ' + this.beacons[key]['url']);
break;
}
}
开始时,我得到大约10个警报“信标id”,最后我得到“警报json”
我想要达到的目标:
问题是答案来得太晚,我无法保持中断循环等。如果希望同步ajax调用,我认为可以实现递归方法。因此,在第一次ajax调用之后,如果没有得到所需的响应,可以使用不同的url再次调用该方法 例如:
let arr = [];
for(var key in this.beacons){
arr.push(key);
}
function callAjax(index){
if(index >= arr.length){
return;
}else{
//YOUR AJAX CALL...
data => {
this.json = data.config;
}, error => {callAjax(index + 1)}
}
}
第一次打电话
callAjax(0);