Асинхронный обработчик AWS Lambda JavaScript SDK - PullRequest
0 голосов
/ 26 июня 2018

Рассмотрим код этого узла 8.10:

exports.handler = async (event, context, callback) => {
    setTimeout(() => callback(null, "resolved"), 100)
};

Когда я запускаю его, ответом является null.Когда я удаляю ключевое слово async из обработчика, ответ "resolved", как и ожидалось.

Может кто-нибудь объяснить это поведение?Как функция async выполняется в контейнере Lambda и в чем отличие от «нормальной» функции?

1 Ответ

0 голосов
/ 11 июля 2018

Обработка функции async отличается от обычной.

Используя обычную функцию, контейнер Lambda использует функцию обратного вызова для получения результата, даже вызываемого асинхронно.

Но когда обработчик определен как async, возвращается значение: var res = await handler(...) и обратный вызов игнорируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...