Я работаю над лямбда-функцией, используя node js. Я вызываю функцию, которая возвращает обещание, а затем вызываю обещание. Моя первая функция получает БД в виде строки на основе идентификатора. Если строка отсутствует, я хочу вернуть ответ об ошибке, и, если она есть, она должна вызвать promise.
Ниже приведен мой код:
return getDetailsOfRow(id).then(function() {
return Promise.all([
getDetailsOfA(query1),
getDetailsOfB(query2),
getDetailsOfC(tripLocationsQuery)
]).then(function(values) {
return combineResults();
})
});
function getDetailsOfRow(trip) {
return new Promise((resolve, reject) => {
con.query(query, id, (err, results, fields) => {
if (err) {
reject(err);
}
if (results.length < 1) {
createErrorResponse();
} else {
//get the set column values to use for other function
}
});
});
}
function createErrorResponse() {
return new Promise((resolve, reject) => {
var response = {
"isBase64Encoded": false,
"statusCode": 404,
"headers": {
"Content-Type": "text/html"
},
"body": "Invalid Key"
};
resolve(response);
});
}
Обещание внутри метода createErrorResponse не вызывается для лямбда-функции. Я не получаю никакого ответа от лямбда-функции. Я не нашел никакого решения. Это потому, что я верну обещание внутри обещания, если вызов createErrorResponse () из getDetailsOfRow ()?