then() 함수 중 적어도 하나가 전에 끝내기를 기다리지 않고 있다는 문제가 있습니다.첫 번째 쿼리에서 대답하기 위해 두 번째 쿼리의 결과를 추가하십시오.
있지만, 대략 다음과 같은 코드가 단축된다.
내가 조치가 채워 것을 그러나 아약스에서 (참조 나는 끝에 콘솔에 objCheck을 인쇄 할 경우 var objCheck = {};
var id = thisClick.attr('id');
APP.db.checkInfo.get(id).then(function (resultDetail) {
objCheck.details = resultDetail;
}).then(function() {
var checkPoints = APP.db.checkRooms.where('check_id').equals(id);
checkPoints.toArray(function(dataArray) {
dataArray.measures = [];
objCheck.checkpoints = dataArray;
});
}).then(function() {
var arrayLength = objCheck.checkpoints.length;
for (var i = 0; i < arrayLength; i++) {
var roomId = objCheck.checkpoints[i].room_id;
var measure = APP.db.measures.where('room_id').equals(roomId);
measure.toArray(function(dataArray) {
objCheck.checkpoints[i].measures = dataArray;
});
}
}).then(function() {
$.ajax(
// Here I send then objCheck to the server
).done(...);
}).catch(function(error) {
alert ("Error upload: " + error);
});
) 호출이 아닌 보냈다. 그래서 마지막 두 번째 것이 끝나기 전에 마지막으로 실행되는 것처럼 보입니다.
내 편이 오해 한 것 같습니다. 누군가 내 논리에서 잘못된 점을 말해 줄 수 있습니까?
[질문 제목에 태그를 넣지 마십시오] (https : //로 stackoverflow.com/help/tagging) – Liam
@ Liam Thanks. 나는 이것에 대해 몰랐다. 제 질문은 도서관에 한정되어 있기 때문에 제목에서 그것을 좁히는 것이 합리적이라고 생각했습니다. –