Javascript 如何在node js中获得承诺之外的结果

Javascript 如何在node js中获得承诺之外的结果,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我需要得到承诺之外的结果。这是我的密码 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 = repor

我需要得到承诺之外的结果。这是我的密码

 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);
var NotList=share.getNotification();
Promise.all([NotList])。然后(函数(not_list){
var报告列表=非列表[0];
对于(var n=0;n

但是我得到一个空数组。请帮助某人解决这个问题。

你不能。您只能返回保存数据的承诺:

   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);
});
var NotList=share.getNotification();
var通知\u arrPromise=新承诺(解决=>{
Promise.all([NotList])。然后(函数(not_list){
var报告列表=非列表[0];
var计数=0;
对于(var n=0;n
您不能。您只能返回保存数据的承诺:

   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);
});
var NotList=share.getNotification();
var通知\u arrPromise=新承诺(解决=>{
Promise.all([NotList])。然后(函数(not_list){
var报告列表=非列表[0];
var计数=0;
对于(var n=0;n
对不起,没有working@SoumyaSarasan查看更新,很抱歉我没有看到您有嵌套的承诺。@SoumyaSarasanwait@SoumyaSarasan这应该会起作用,不是吗working@SoumyaSarasan查看更新,很抱歉我没有看到您有嵌套的承诺。@SoumyaSarasanwait@SoumyaSarasan这应该行得通