получить нулевое значение в результате обратного вызова AWS лямбда - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь проверить otp с помощью модуля sendotp npm, но методом sendOTP.verify я получаю результат обратного вызова как нулевой.Как я могу проверить, проверен ли otp или нет.

sendOTP - https://www.npmjs.com/package/sendotp

exports.handler = async (event,context,callback) => {
    const SendOtp = require('sendotp');
    const sendOTP = new SendOtp('260981AZN8sH3O5c551802');
    let mobileNum = event.mobile.toString();
    let otp = event.otp.toString();
    sendOTP.verify(mobileNum, otp, (error, data) => {
        callback(null,{statusCode:200,body:data.type});
    });
}

1 Ответ

0 голосов
/ 02 февраля 2019

Существует два типа вызова лямбда-функции - синхронный и асинхронный.Синхронный вызов заблокирует абонента, который будет ждать ответа.Тип асинхронного вызова не будет блокировать вызывающего и будет возвращен сразу после вызова без ответа - null -.

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

Если вы не хотите, чтобы он был асинхронным, измените заголовок на

exports.handler = (event,context,callback) => 

Обратите внимание, что некоторые службы будут использовать свой предопределенный тип лямбда-вызова при вызове лямбда-функции без соблюдения вашего выбора(т.е. когда вы подписываете лямбда-функцию на событие s3, она всегда будет вызываться асинхронно).

...