Async зависит от Обещаний , но вы нигде не даете обещаний в своем коде.В результате, ожидание load_data
не ждет.
Попробуйте использовать обещание и решить, как только истечет время ожидания:
function load_data(data){
return new Promise(resolve => setTimeout(() => {
a=data
resolve()
}, 2000))
}
Кроме того, мы предположим, что это только для обученияasync / await… в противном случае вы должны рассмотреть все обычные рекомендации, повторяющие использование глобальных переменных таким образом.Это рецепт для беспорядка, когда ваш код становится больше
var a = 10
function load_data(data){
return new Promise(resolve => setTimeout(() => {
a=data
resolve()
}, 2000))
}
function print(){
console.log(a)
}
async function init(){
await load_data(40);
print();
}
init();