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; решает проблему.

Другие вопросы по тегам