У меня есть функция, которая делает вызов базы данных. Я хочу вернуть логическое значение, если эта операция прошла успешно, но я всегда получаю undefined
. Поскольку я прочитал, возвращаемое значение также должно быть обещанием, но если я хочу then/catch
«обещание», моя функция возвращает undefined
.
const foobar = function(data) {
db.call(data).then(function(res) {
console.log(res); // returns the expected data, e.g.["foobar", "foo", "bar"]
return res.includes("bar");
}).catch(function(err) {
// if an error occures, the function should ...
// ... return a false value as well
return false;
});
};
Мой вызов функции выглядит так: foobar({1: 'a'})
. Как я могу получить логическое возвращаемое значение правильным способом?
Я пробовал это со следующими двумя вариантами:
Сначала я подумал, что возвращаемое значение будет нормальным логическим значением:
const return_value = foorbar({1: 'a'}); // returns undefined
После того, как я прочитал, что возвращаемое значение в функции then
также будет обещанием, я попытался then/catch
it:
const return_value = foobar({1: 'a'}
).then(function(res) {
console.log(res);
}).catch(function(err) {
console.log(err);
});
Uncaught TypeError: Невозможно прочитать свойство 'then' из неопределенного
Вывод ясно указывает на то, что результат не обещание, а просто undefined
. Я ценю любую помощь.