在回调 AWS lambda 中获取空值



我正在尝试使用 sendotp npm 模块验证 otp,但 sendOTP.verify 方法我得到的回调结果为 null。如何验证OTP是否已被验证。

发送OTP - 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});
    });
}

有两种 lambda 函数调用类型 - 同步和异步。同步调用将阻止等待响应的调用方。异步调用类型不会阻止调用方,它将在调用后立即返回,没有 - null - 响应。

如果将关键字

放在函数前面async则指定要异步调用的函数,因此得到的null响应是预期行为。

如果您不希望它是异步的,请将标头更改为

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

请注意,某些服务在调用 lambda 函数时将使用其预定义的 lambda 调用类型,而不尊重您的选择(即,当您将 lambda 函数订阅到 s3 事件时,它将始终异步调用)。

相关内容

  • 没有找到相关文章

最新更新