Помощь с callback'ом

  • Автор темы Автор темы BlackFox
  • Дата начала Дата начала

BlackFox

Trainee
Помогите разжевать что я делаю не так, когда мне надо вытащить данный callback на верх.

unknown (1).png

unknown (2).png
 
console.log это код который сразу даёт результат выполнения (странно что ты там получаешь undefined, потому что по идее arr пустая строка и будет "arr:"), а у твоей функции loadZoneInfo результат выполнения будет позже так как она зависит от DB.Handle.query, точнее от того когда будет вызван колбек DB.Handle.query (err, result) => {...}, а он естественно не будет вызван моментально так как происходит обращение к БД и эта операция под капотом выполняется асинхронно(не моментально а с задержкой)
 
Последнее редактирование:
а ну и решение из этого простое, перенеси console.log в колбек
function(infoZone){ console.log('arr:', infoZone) }
 
Мне в дальнейшем, этот массив надо будет использовать, по этому его надо пробросить на верх
 
JavaScript:
let arr = '';
async function infoWzp() {
    arr = await loadZoneInfo();
    console.log('arr:', arr);
}
function loadZoneInfo(callback) {
    return new Promise((res) => {
        DB.Handle.query('SELECT * FROM wzp_info', (err, result) => {
            if (err)
                return console.log(err);
            
            if (result.length < 1)
                return;

            res(result);
        });
    });
}
infoWzp()
 
Назад
Верх