Здравствуйте, loginx, Вы писали:
I>>I>>async function x() {let y=0; console.time(); for(let i=0;i<10000000;i++){ y+=Math.sin(i);} console.timeEnd(); }
I>>
I>>Код выполняется ажно 1 секунду и далее не тормозит Замени 10000000 на Infinity, узнаешь много нового.
L>да, согласен, мало итераци у меня было... однако со встроенным fetch(URL) работает не тормозя гуи хотя ччитать може и 1 час! (большой файд, медленный интернет)
И при чем здесь async ? fetch и без него не морозит UI
I>>Но вообще скучновато наблюдать, как ты открываешь для себя особенность JS, которой двадцать лет или больше
L>но async появились совсем недавно!! И из описания да и на практике для встроенных fetch(URL)
L>работает не тормозя гуи. Логично было ожидать что и самодельные async обладают свойствами встроенных в язык async ф-ий типа fetch()
Логично проверить fetch безо всяких асинков и узнать, что асинк ни при чем.
L>И исходя из публичных док на мозиле
L>асинк должна немедлено после вызова НЕ начиная выполнять код внутри вернуть
L>в точку вызоа проимс. И далее что? Выполняется следующая строка и тд (но тогда когда же стартует выполнение тела асинк ф-ии?)
L>Или все же перед возвратом все же в самодельной ф-ии должно выполнится все тело внутри...?
L>Но тогда деза в доках!!
Нет дезы. Надо разобраться в промисах.
L>Вот в ф-иях генераторах в доках ясно — старт это вызов next() — возврат — yield()
L>А в асинк ф-иях где ".next()" ?! Получается на текущий момент самодельные не встроенные в язык async ф-ии это всего лишь кастрированные Генераторы?
Унутре. Именно.