异步映射异步功能

时间:2019-01-05 01:48:39

标签: javascript dictionary asynchronous mongoose mongoose-populate

我有以下猫鼬模式:

const tripSchema = new Schema({
    events: [{
        eventId: {
            type: Schema.Types.ObjectId,
            ref: 'Event',
            required: true
        },
        quantity: {
            type: Number,
            required: true
        }
    }],
    user: {
        email: {
            type: String,
            required: true
        },
        userId: {
            type: Schema.Types.ObjectId,
            required: true,
            ref: 'User'
        }
    }
})

基本上,我想获取事件并填充然后传递结果。我得到了结果,但是在映射之后,异步性使我困惑。

  Trip.find({
      'user.userId': mongoose.Types.ObjectId(req.user._id)
    })
    .then(trips => {
     // A. I get trips here
      return trips.forEach(
        trip => {
          trip.populate('events.eventId')
            .execPopulate()
        }
      )
    }).then(trips => {
      //B. trips is undefined
      res.render('standard/trips', {
        path: '/trips',
        pageTitle: 'Your Trips',
        trips
      })
    })
    .catch(err => console.log(err))

因此,在A点,绊倒是我所相信的,但是在B点,它是不确定的。我知道这是一个异步问题,只是不确定如何解决。请帮忙。谢谢。

Rik

0 个答案:

没有答案