2017-03-08 2 views
0

약속 밖의 결과를 얻을 필요가 있습니다. 여기 내 코드가있다.노드 js에서 결과를 얻는 방법

var NotList = share.getNotification(); 
Promise.all([NotList]).then(function(not_list) { 
var report_list = not_list[0]; 
for (var n = 0; n < report_list.length; n++) { 
    var time_d = report_list[n].time; 
    var not_id = report_list[n]._id; 
    var PlantData = plant_details(report_list[n].plant_id); 
     Promise.all([PlantData, not_id]).then(function(result_arr) {      
     var plant_d = result_arr[0]; 
     return notification_arr.push({notification_id: result_arr[1], parameter_name: "op_conductivity_val", plant_title: plant_d.title, message: "Plant output conductivity is low", notification_class: "danger", time: time_d}); 

      }); 

     } 

    }); 
    console.log(notification_arr); 

빈 배열이 나타납니다. 누군가이 문제를 해결할 수 있도록 도와주세요.

답변

2

수 없습니다. 당신은 단지 데이터를 보유하고 약속을 반환 할 수 있습니다

var NotList = share.getNotification(); 
    var notification_arrPromise = new Promise(resolve => { 

    Promise.all([NotList]).then(function(not_list) { 
     var report_list = not_list[0]; 
     var count = 0; 
     for (var n = 0; n < report_list.length; n++) { 
      var time_d = report_list[n].time; 
      var not_id = report_list[n]._id; 
      var PlantData = plant_details(report_list[n].plant_id); 
      Promise.all([PlantData, not_id]).then(function(result_arr) {      
       var plant_d = result_arr[0]; 
       count++; 
       if(count === report_list.length){ 
        resolve (notification_arr.push({notification_id: result_arr[1], parameter_name: "op_conductivity_val", plant_title: plant_d.title, message: "Plant output conductivity is low", notification_class: "danger", time: time_d})); 
       } 

     }); 

     } 

    }); 
}); 


notification_arrPromise.then(function(notification_arr){ 
    console.log(notification_arr); 
}); 
+0

난 당신이 약속을 중첩 것을하지 않았다, 미안 업데이트를 참조 @SoumyaSarasan –

+0

작업 박혔. –

+0

@SoumyaSarasan 기다림 –

관련 문제