Массив функции Dexie StartWithIgnoreCase() не определен
Я запрашиваю базу данных dexie с помощью startWithIgnoreCase и помещаю результат в массив, но при его печати или использовании он выдает ошибку как undefined
Я попытался использовать JSON.stringify, toString, String, чтобы преобразовать его в строку и распечатать на консоли, но все же он показывает undefined
Пока вы печатаете весь массив на консоль, показывая обычный Array()
arr = [];
db.table('friends').where('name').startsWithIgnoreCase('DoB/')
.each(function (friend) {
arr.push(String(friend.name));
});
console.log(arr[0]); //undefined
console.log(arr); //Array() with correct element inside
Я должен хоть что-нибудь напечатать, когда использую console.log(arr[0])
1 ответ
Решение
Вызов данных из базы данных - это что-то асинхронное, и javascript не ждет вас, пока ваша задача не будет выполнена, если вы этого не сказали. используйте async/await в своем запросе. что-то вроде этого:
async myControllerFunction()=>{
arr = [];
let firends = await db.table('friends').where('name').startsWithIgnoreCase('DoB/')
.each(function (friend) {
arr.push(String(friend.name));
});
console.log(arr[0]);
console.log(arr);
}