Лямбда-функция, возвращающая нуль после вызова обратного вызова - PullRequest
0 голосов
/ 17 декабря 2018

Я пишу lambda функцию и возвращаю обратный вызов, но ответ становится нулевым.

Моя функция выглядит как

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)
           });
        }
    };

};

Что-то не так с этим способом?я возвращаюсь?

1 Ответ

0 голосов
/ 17 декабря 2018

Ваша последовательность неверна.Вы назначаете функцию 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 разбирает код в два этапа.Google "поднимает" больше о том, как это ведет себя.

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