Чем отличаются `setTimeout(fn, 0)` и `Promise.resolve().then(fn)` с точки зрения порядка выполнения задач и приоритета очередей в event loop JavaScript? — ДейлиПреп