javascript - Comment implémenter l'imbrication de requêtes en boucle asynchrone
ringa_lee
ringa_lee 2017-07-05 10:36:27
0
1
953

Supposons qu'il existe un tableau de dictionnaires d'élèves et que les élèves ont des noms et des numéros de classe. Tout d'abord, interrogez les écoles qui remplissent les conditions, facilitez le tableau de dictionnaires d'élèves, créez un objet étudiant et attribuez le nom, l'école et la classe, mais la classe doit d'abord interroger l'emplacement de la salle de classe pour déterminer. Une requête circulaire apparaîtra-t-elle ? Comment résoudre un tel problème ?

var studentArr = new Array({'name': 'a','room':'101'},{'name': 'b','room':'102'},{'name': 'c','room':'103'},{'name': 'd','room':'104'});
var objects = new Array();
var schoolQuery = new AV.Query(Shcool);
schoolQuery.equalTo('name','**高中');
schoolQuery.find().then(function(schoolReuslts){
    for (var i = 0; i < studentArr.count; i ++){
        var student = studentArr[i];
        var object = new Student();

        object.set('name',student['name']);
        object.set('room',student['room']);
        object.set('school',schoolReuslts[0]);

        var classQuery = new AV.Query(Class);
        classQuery.equalTo('school',schoolReuslts[0]);
        classQuery.equalTo('room',student['room']);
        classQuery.find().then(function(classResults){
                object.set('class',classResults[0]);
                objects.push(object);
            }, function(error){
                console.log(error);
            });
        }
    return AV.Object.saveAll(objects);
}).then(function(objects){
    //全部保存成功    
}
}).catch(function(error) {
    console.log(error);
ringa_lee
ringa_lee

ringa_lee

répondre à tous(1)
刘奇

Vous pouvez utiliser l'imbrication de fonctions asynchrones, async/await node.js version >7.10.0

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal