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

问题描述 投票:0回答:1

我正在写一个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)
           });
        }
    };

};

我回来的方式有问题吗?

node.js amazon-web-services aws-lambda
1个回答
1
投票

你的排序错了。在将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分两个阶段解析代码。谷歌“提升”了解更多关于这种行为的信息。

© www.soinside.com 2019 - 2024. All rights reserved.