在javascript中将数组作为元素添加到数组中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在javascript中将数组作为元素添加到数组中相关的知识,希望对你有一定的参考价值。

节点,表达,猫鼬。

我试图从回调中添加一个数组作为元素到数组。

app.get('/view', function(req, res){
    var csvRows = [];
    Invitation.find({}, function(err, invitations){
       if(err){
           console.log('error');
       } else {

           invitations.forEach(function(invitation){
               Guest.find({_id: invitation.guests}, function(err, guest){
                   if(err){

                   } else {
                       var rsvpURL = 'url'+invitation._id;

                        var csvRow = [guest[0].firstName, 
                                    guest[0].addr1, 
                                   ...,
                                    rsvpURL];
                        csvRows.push(csvRow);

                   }
               });
           });
           console.log(csvRows);
           res.send(csvRows);
       }

    });
});

数组没有添加任何东西。任何想法将不胜感激。

答案

在每个找到的客人等待Promise.all,返回一个解析为所需行的承诺:

app.get('/view', function(req, res){
  Invitation.find({}, async function(err, invitations){
    if(err){
      console.log('error');
      return;
    }
    const csvRows = await Promise.all(invitations.map(function(invitation){
      return new Promise((resolve, reject) => {
        Guest.find({_id: invitation.guests}, function(err, guest){
          if(err){
            console.log('error');
            reject();
          }
          const rsvpURL = 'url'+invitation._id;
          const csvRow = [guest[0].firstName, guest[0].addr1, rsvpURL];
          resolve(csvRow);
        });
      });
    }));

    console.log(csvRows);
    res.send(csvRows);
  });
});

以上是关于在javascript中将数组作为元素添加到数组中的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中将新元素推送到数组时出错

如何在javascript中将一个数组中的值添加到另一个数组

在 Swift 中将元素添加到数组中

在Javascript中将类分配给数组

在函数内部的python中将元素添加到池数组

在numpy中将单个元素添加到数组