city.json 可在这里下载
http://www.helloweba.com/demo/cityselect/3
var Address_Province = AV.Object.extend("Address_Province");
var Address_City = AV.Object.extend("Address_City");
var Address_District = AV.Object.extend("Address_District");
function newProvince(name, cityArr) {
var _province = new Address_Province();
_province.set('name', name);
return _province.save().try(
function (_P) {
if (cityArr) {
var _city = [];
for (var i = 0; i < cityArr.length; i++) {
_city.push(newCity(_P, cityArr[i].n, cityArr[i].a));
}
return AV.Promise.all(_city);
}
}
);
}
function newCity(province, name, districtArr) {
var _city = new Address_City();
_city.set('province', province);
_city.set('name', name);
return _city.save().try(
function (_c) {
if (districtArr) {
var promise = AV.Promise.as();
for (var i = 0; i < districtArr.length; i++) {
promise = promise.then(
function () {
if (districtArr[i] && districtArr[i].s)
return newDistrict(province, _c, districtArr[i].s);
});
}
return promise;
}
});
}
function newDistrict(province, city, name) {
var _district = new Address_District();
_district.set('province', province);
_district.set('city', city);
_district.set('name', name);
return _district.save().then(
function (data) {
console.log('+', name);
},
function (err) {
console.log('--', name);
}
);
}
function installAll() {
var citylist = _city.citylist;
var _list = [];
for (var i = 0; i < citylist.length; i++) {
var _p = citylist[i].p;
var _c = citylist[i].c;
_list.push(newProvince(_p, _c));
}
return AV.Promise.all(_list);
}
newCity的时候换了顺序执行,还是会有几个没导入,是调用函数的次数有限制么?