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的时候换了顺序执行,还是会有几个没导入,是调用函数的次数有限制么?