Как работает map в данном случае?

У меня есть есть запрос, я не понимаю дословно как работает map в данном случае.
Переменная или функция friendId не создавались мной и ранее не фигурировали
Прошу разжевать что выполняет map

router.get("/timeline/all", async (req, res) => {
    try {
      const currentUser = await User.findById(req.body.userId); //из тела запроса берем айди юзера и ищем в модели юзера
      const userPosts = await Post.find({ userId: currentUser._id }); // из модели поста ищем айди автора поста (в каждом посте указываем userId), 
                                                                    //которые совпадаю с юзером в теле запроса
      const friendPosts = await Promise.all(
        currentUser.followings.map((friendId) => { //тут не ясно откуда взялся friendId 
          return Post.find({ userId: friendId }); 
        })
      );
      res.json(userPosts.concat(...friendPosts)) //объединяем массивы 
    } catch (err) {
      res.status(500).json(err);
    }
  });
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
wapster92
@wapster92
В подписчиках по всей видимости храниться массив id. Map возвращает массив промисов, которые обрабатывает Promise.all. Вообще это не эффективно, можно использовать model.find({ '_id': { $in: array_ids }})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы