Комментарии 9
Иными словами вы просто создали свою собственную реализацию стэка вызовов? И для чего?
0
Промайс… Кхм… translate.google.ru/?hl=ru#en/ru/promise нажмите на кнопочку с динамиком и послушайте как на самом деле звучит это слово.
+10
И вот еще, вот про это слышали? caolan.github.io/async решает множество проблем как с читаемостью кода, пониманием, лапшой и т. д. позволяя запускать синхронные и асинхронные задачи в любых мыслимых комбинациях.
+1
В последних стандартах, появились свои промайсы, а потом и async/await, что вкупе позволяет свести вычислительный процесс к полностью синхронной модели. И казалось бы, что проблема решена, но у меня есть ряд претензий к данному решению:
- реализация далека от «элегантности»
- на данный момент медленно работает
- плодит плохо читаемый код
- плохо подходит для организации «массивной» параллельности (без кучи плохо читаемого кода)
Можете хоть один пункт аргументировать? Или тег «юмор» добавьте.
+2
Вы не поверите, но при трансляции генераторов и асинхронных функций Babel генерирует примерно такой же код, как и у вас в статье:
regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return fetch();
case 2:
result = _context.sent;
_context.next = 5;
return result.json();
case 5:
data = _context.sent;
return _context.abrupt("return", data);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
Очень странно, что набор switch/case, которые исполняются в неопределенном порядке, кажется вам более читаемым, чем исходник с async/await.
+3
Давайте забудем про async/await
Что то вроде функции, только асинхронной
А давайте не будем забывать про нативную фичу языка, которую сделали для работы с асинронностью и которая именно что реализует "функции, только асинхронные"?
+4
Думаю вам будет небезынтересно взглянуть на эту магию:
https://github.com/eigenmethod/mol/tree/master/fiber
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Javascript — решение асинхронной проблемы?