У меня проблемы с пониманием того, почему мой код ниже регистрирует в следующем порядке: «конец» «тайм-аут выполнен» «обещание»
Я предположил, что «обещание» будет регистрироваться до «истечения времени ожидания», поскольку оно имеет приоритет над задачей очереди обратного вызова (setTimeout). Мое предположение после этого наблюдения заключается в том, что до тех пор, пока не будет вызван .then, обещание не ставит свою задачу в очередь, так как она еще не готова, и, таким образом, позволяет setTimeout выполнять сначала в очереди обратного вызова. Это верно?
const sampleFunction = function(e) {
setTimeout(() => console.log('timeout done'), 0)
const data = fetch(`https://jsonplaceholder.typicode.com/comments/1`)
.then(response => {
return response.json();
})
.then(json => {
/*doSomething*/
console.log('promise')
});
console.log('end')
}