await
не делает асинхронный код синхронным. Это просто создает иллюзию, что она находится внутри функции, помеченной как async
.
Когда двигатель JS достигает await
, она переводит функцию в спящий режим до тех пор, пока обещание, которое вы ждете, не разрешится.
Если вы await
getInitialVideos
, то onInit
будет go спать, пока обещание, возвращаемое getInitialVideos
, не разрешится (в этот момент оно проснется и продолжит с DoSomething
).
Если вы не await
getInitialVideos
, то когда getInitialVideos
перейдет в спящий режим (поскольку он await
ing fetch().then()
) onInit
продолжится с DoSomething
. Затем в какой-то момент в будущем fetch().then()
разрешится и getInitialVideos
проснется и продолжит.