Lambda函数在调用回调后返回null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda函数在调用回调后返回null相关的知识,希望对你有一定的参考价值。

我正在写一个lambda函数并返回一个回调但响应将变为null。

我的功能看起来像

var CloudmersiveValidateApiClient = require('cloudmersive-validate-api-client');
var defaultClient = CloudmersiveValidateApiClient.ApiClient.instance;

// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'API-KEY';

// Create an instance
var apiInstance = new CloudmersiveValidateApiClient.EmailApi();

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

    var email = event.email;

    apiInstance.emailFullValidation(email, callbackcm);

    var callbackcm = function(error, data, responsed) {

        if (error) {
            callback(null, {
               "Error": JSON.stringify(error)
           });
        } else {
            callback(null, {
               "Body": JSON.stringify(data)
           });
        }
    };

};

我回来的方式有问题吗?

答案

你的排序错了。在将callbackm函数作为参数传递后,可以指定它。你要么做:

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

    var email = event.email;

    var callbackcm = function(error, data, responsed) {
        // ....
    };

    apiInstance.emailFullValidation(email, callbackcm);

};

或者这样做:

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

    var email = event.email;

    apiInstance.emailFullValidation(email, callbackcm);    

    function callbackcm (error, data, responsed) {
        // ....
    };
};

这是因为javascript分两个阶段解析代码。谷歌“提升”了解更多关于这种行为的信息。

以上是关于Lambda函数在调用回调后返回null的主要内容,如果未能解决你的问题,请参考以下文章

401的自定义响应Lambda Authorizer

getActivity() 在片段上返回 null?

lambda 触发器回调与 context.done

嵌入传递 lambda 函数作为回调参数

parseJSON在django模板的ajax成功回调函数中返回null

编译器如何实现lambda表达式?