javascript - 異步循環(huán)查詢嵌套該怎么實(shí)現(xiàn)
問(wèn)題描述
假設(shè)有已經(jīng)存在的學(xué)生字典數(shù)組,學(xué)生有姓名和所在教室號(hào),先查詢符合條件的學(xué)校,便利學(xué)生字典數(shù)組,創(chuàng)建學(xué)生對(duì)象賦值姓名、學(xué)校和班級(jí),但是班級(jí)需要先查詢教室的位置來(lái)確定,這樣就出現(xiàn)循環(huán)查詢了?這樣的問(wèn)題該怎么解決呢?
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);
問(wèn)題解答
回答1:可以使用異步函數(shù)的嵌套,async/await node.js版本>7.10.0
相關(guān)文章:
1. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?2. docker綁定了nginx端口 外部訪問(wèn)不到3. thinkphp5.1學(xué)習(xí)時(shí)遇到session問(wèn)題4. docker容器呢SSH為什么連不通呢?5. nignx - docker內(nèi)nginx 80端口被占用6. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開收起效果7. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?8. 前端 - ng-view不能加載進(jìn)模板9. javascript - iframe 為什么加載網(wǎng)頁(yè)的時(shí)候滾動(dòng)條這樣顯示?10. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款
