javascript async/await не работает
У меня есть конкретный случай, когда мне нужно дождаться результата асинхронных вызовов, прежде чем продолжающий. Я использую ключевые слова async/await, но не везет. Любая помощь приветствуется.
Это моя попытка попытаться заставить его работать, числа должны быть в числовом порядке.
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function demo() {
document.writeln('2...');
await sleep(2000);
document.writeln('3...');
}
document.writeln('1...');
demo();
document.writeln('4.');
2 ответов
вы должны использовать .then()
после асинхронная функция.
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function demo() {
document.writeln('2...');
await sleep(2000);
document.writeln('3...');
}
document.writeln('1...');
demo().then(() => {
document.writeln('4.');
});
функция async вернет Promise
, поэтому вам нужно дождаться вызова demo
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))
const demo = async () => {
console.log('2...')
await sleep(2000)
console.log('3...')
}
const blah = async () => {
console.log('1...')
await demo()
console.log('4.')
}
blah()