Асинхронизация и ожидание в javascript и node.js - PullRequest
0 голосов
/ 16 июня 2019

Я новичок и изучаю MERN, и у меня возникают проблемы с пониманием потока управления для приведенного ниже кода. Что делает async / await в этой функции и когда для пользователя установлено ожидаемое значение (User.findById ...)?

router.get('/', auth, async (req, res) => {
    const user = await User.findById(req.user.id).select('-password');
    res.json(user);
}

1 Ответ

0 голосов
/ 19 июня 2019

Асинхронная функция - это функция, которая работает асинхронно через цикл обработки событий, используя неявное Promise для возврата своего результата. А оператор ожидания служит для ожидания обещания. Он может использоваться только внутри асинхронной функции.

Таким образом, в этом примере пользователь async / await «ожидает», пока функция User.findById () не вернет результат, каким он будет где-то в будущем, и это достигается с помощью ключевого слова await.

Предлагаю посмотреть это видео о цикле событий , чтобы лучше понять, как работает асинхронный JavaScript.

Также я настоятельно рекомендую вам прочитать документацию MDN. async / , ожидают

И читайте про Обещания

Если у вас возникнут дополнительные вопросы, я буду рад вам помочь.

...