Reputation: 1477
I am writing a lambda
function and returning a callback but the response is coming to be null.
My function looks like
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)
});
}
};
};
Is there something wrong with the way i am returning?
Upvotes: 0
Views: 212
Reputation: 113866
Your sequencing is wrong. You assign the callbackm
function after you've passed it in as an argument. You either need to do:
exports.handler = async (event, context, callback) => {
var email = event.email;
var callbackcm = function(error, data, responsed) {
// ....
};
apiInstance.emailFullValidation(email, callbackcm);
};
or do this:
exports.handler = async (event, context, callback) => {
var email = event.email;
apiInstance.emailFullValidation(email, callbackcm);
function callbackcm (error, data, responsed) {
// ....
};
};
This is because javascript parses code in two phases. Google "hoisting" for more on how this behaves.
Upvotes: 1