我使用forcast api获取天气数据。在牵线木偶中,我使用模型将API rulRoot定义为
var weatherApi = Backbone.Model.extend({
defaults:{
lat:"",
lng:"",
timeStamp:"",
units:"",
response:""
},
urlRoot: function(){
return '/api/web/forecast?lat='+ this.get("lat") + '&long=' + this.get("lng") +'&time=' + this.get("timeStamp") + '&units='+this.get("units");
}
});
然后我实例化为
weatherApiGddObj = new weatherApiInstance();
我用这个对象来获取api调用响应。现在我想要的是从今天到接下来的30天同时进行多个api呼叫,所以如果我一个接一个地做,那么它将花费大量时间来获得所有响应。我怎么用牵线木偶做这件事?
答案 0 :(得分:2)
最好有一种方法允许您在一个请求中获取天数范围内的数据。但根据你的条件,我会这样做:
var date, startDate = someTimestamp, day = 86400,
endDate = startDate + day * 30, promises=[];
for(date = startDate; date < endDate; date += day){
weatherApiGddObj.set('timestamp', date);
promises.push(weatherApiGddObj.fetch());
}
$.when.apply($,promises).done(function(){
var data = Array.slice.call(arguments);
console.log(data);
});
我建议你阅读Deferred Object