Я пишу функцию 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)
});
}
};
};
Что-то не так с тем, как я возвращаюсь?
@MaiKaY, Спасибо за вклад. Это действительно помогло.
@ K.Liu, вы можете установить его локально, а затем заархивировать весь код, включая node_modules, и загрузить его в lambda.





Ваша последовательность неверна. Вы назначаете функцию 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 "поднимает", чтобы узнать больше о том, как это ведет себя.
Также ознакомьтесь с моим ответом на этот другой вопрос для более подробного изучения угловых случаев: stackoverflow.com/questions/3887408/…
Большое спасибо. Я тоже посмотрю на это.
Попробуйте вызвать
apiInstance.emailFullValidation(email, callbackcm);после установки переменнойcallbackcm