I am trying to call the callback(null,response) inside .then() block of a promise. It works fine when i am using serverless offline but its giving error when using serverless.
There are two scenarios:
1 Works fine (when deployed using serverless deploy and when using sls offline start)
module.exports.getAssembly = (event, context, callback) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless v1.0! Your function executed successfully!'
}),
};
callback(null, response)
}
2 Works fine with sls offline but gives internal server error with serverless deploy
module.exports.getAssembly = (event, context, callback) => {
mysql.query('SELECT * from assemblies',connection).then((returnedObject)=>{
const response = {
statusCode: 200,
body: JSON.stringify({
message: returnedObject.results
}),
};
callback(null, response)
})
}
There is some problem with the callback(null,response) inside the .then() block of the promise
Setting
context.callbackWaitsForEmptyEventLoop = false;solves the problem.