Re[10]: JS vs. Native: сравнение на реальном нетривиальном пр
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 28.11.17 13:04
Оценка:
Здравствуйте, 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()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.