我正在尝试将下面的代码AngularJS 1.6转换成聚合物2.0
AngularJS
for ( int i=0; i<=10; i++ )
{
// call rest service for Rates
var rates = fxRateService.query({ids : rateIds}, function() {
//do some processing here
}
}聚合物规范
for ( int i=0; i<=10; i++ )
{
// call rest service for Rates
this.$.rateAjax.url = 'api/v1/fxrates?ids=' + rateIds;
this.$.rateAjax.generateRequest();
}
requestEnd() {
// do processing based on the response retrieved
} 问题是在聚合物中,当FOR循环运行时,程序不会以同步方式运行。如果FOR循环运行了5次,程序会发出5个rest服务调用,但是在FOR循环的所有迭代完成之后,程序就会出现requestEnd方法。
我想要的是,它应该调用Rest服务,等待服务返回并执行requestEnd方法,然后按照AngularJS代码的方式第二次调用Rest服务。
你能指引我吗?
发布于 2017-07-27 15:27:55
如果您将"requestEnd“方法设计为一个承诺,那么您可以这样做:
function queryAll(i){
if(i === 10)
{
return;
// All done
}
return this.$.rateAjax.generateRequest().then(requestEnd).then(()=>{
i++;
return queryAll(i);
})
}https://stackoverflow.com/questions/43589362
复制相似问题