Dexie запускает массив функцийWithIgnoreCase () не определен - PullRequest
1 голос
/ 31 октября 2019

Я запрашиваю базу данных dexie при помощи StartWithIgnoreCase и помещаю результат в массив, но при печати или использовании он выдает ошибку как неопределенную

Я пытался использовать JSON.stringify, toString, String для ее преобразованияв строке и вывести на консоль, но все равно он показывает неопределенное

В то время как вывод всего массива на консоль показывает обычное 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(обр [0])

1 Ответ

2 голосов
/ 31 октября 2019

вызов данных из базы данных является чем-то асинхронным, и 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);
}
...