Lambda Serverless Nodejs - Получение "внутренней ошибки сервера", когда обратный вызов вызывается внутри обещания
Я пытаюсь позвонить callback(null,response)
внутри .then()
блок обещания. Он отлично работает, когда я использую без сервера, но дает ошибку при использовании без сервера.
Есть два сценария:
1 Работает нормально (при развертывании с использованием serverless deploy
и при использовании 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 отлично работает с sls offline
но дает internal server error
с 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)
})
}
Существует некоторая проблема с callback(null,response)
внутри .then()
блок из promise
1 ответ
Решение
Настройка context.callbackWaitsForEmptyEventLoop = false;
решает проблему.