У меня есть две функции a
и b
которые являются асинхронными: первая без await
а вторая с await
. Они оба что-то записывают в консоль и возвращают undefined
. После вызова любой функции я регистрирую другое сообщение и проверяю, написано ли это сообщение до или после выполнения тела функции.
function someMath() {
for (let i = 0; i < 3000000; i++) { Math.sqrt(i**5) }
}
function timeout(n) {
return new Promise(cb => setTimeout(cb, n))
}
// ------------------------------------------------- a (no await)
async function a() {
someMath()
console.log('in a (no await)')
}
// ---------------------------------------------------- b (await)
async function b() {
await timeout(100)
console.log('in b (await)')
}
clear.onclick = console.clear
aButton.onclick = function() {
a()
console.log('after a (no await) call')
}
bButton.onclick = function() {
b()
console.log('after b (await) call')
}
<button id="aButton">test without await</button>
<button id="bButton">test with await</button>
<button id="clear">clear console</button>