Здравствуйте, loginx, Вы писали:
I>>Нет дезы. Надо разобраться в промисах.
L>промисы тут вообще не причем...
Браво — в механике, которая прибита гвоздями к промисам, промисы оказывается ни при чем
L>просто в текущей реализации "самодельные" async ф-ии не работает так как описано в доках, хотя в node.js работает.
Все именно так, как надо работает, согласно докам. И в ноде идентично. Проблема только в API — не всё еще на промисы переведено.
L>Вместо немедленного возврата промиса сейчас асинк ф-ия (САМОДЕЛЬНАЯ) возвращает его только после выполнения своего тела.
Покажи код.
L>Фактически сейчас async это генератор-фия с немедленным вызовом .next()и без yield()
Фактически это две функции. Одна вызывает другую. Примерно так
async(*()=>{
let value1 = yield fetch(url1);
let value2 = yield fetch(url2);
})
function async(generator) {
стартовать генератор
вызывать then до посинения
}
L>а встроенные разрабами мозилы async ф-ии, наприме fetch() работают по докам, немедленный возврат промиса и выполнение следующей строки.
А как ты хотел ?
L>покопавшись в отладчике — вроде fetch определен как генератор а не асинк или возможно и как оба сразу... но точно не как только async
нет никакого специального async в АПИ. Есть функции, которые возвращают промисы. async это фича языка, которая умеет работать с такими функциями.
Просто сахар для
promise.then().then().then().then().then().then()