2016-08-02 6 views

ответ

2

setTimeout Задает переданную функцию в очередь событий, а переданный код выполняется async. https://webdev.dartlang.org/articles/performance/event-loop

Код синхронизации выполнен до конца, а затем обрабатывается следующее событие в очереди событий.

+0

Интересно. Я также заметил, что это поведение не возникает, если вы используете Future.sync вместо setTimeout – Eternalcode

+1

'Будущее имеет немного другое поведение. Существует также очередь микрозадач, которая обрабатывается до выполнения следующей задачи из очереди событий. «Будущее» имеет еще более высокий приоритет AFAIR. –

+0

Re: 'код синхронизации выполнен до конца'. «Конец» означает конец текущей функции или вызывается 'yield' (если в функции синхронизации * или async *), правильно? –

Смежные вопросы