Как стать автором
Обновить

Комментарии 15

Простите где здесь промис? Тут на лицо стандартный колбечный стиль, а промисом и не пахнет. И уж никак этот путь не приведет вас к PromiseAPI. Вы же сами приводите ссылку на промисы и то что там написано, вообще не сходится, то что вы тут нам представили.
function Build(layout, onComplete){
//… async
onComplete(house);
}

Build(layout, function(buildedHouse){
return house = paintRoof(buildedHouse, 'red');
});


Из этого человек ничего не знающий про промисы легко сделает неправильный вывод, что промисы это плохо. Поэтому я считаю что затронутая тема промисов или не должна быть затронута в таком виде, или должна быть затронута в полной мере, что бы не вводить людей в заблуждение.
Привет от Node.js разработчиков, так как в примере пишут но уже редко. (Promise, Async, etc, Ну собственно вы почти все доступные методы описали хотя я могу ошибаться). Будет крайне интересно пощупать вашу библиотеку.
UPD: Еще есть koajs там новая «фича» используется, будущего релиза nodejs 0.12.
Немножко не в тему, но я иногда использую небольшую функцию:

function waitFor(handler, next, timeout) {
  timeout = timeout || 10;
  var result = handler();

  if (! result) {
    setTimeout(function() {
      waitFor(handler, next);
    }, timeout);
  } else {
    next();
  }
}

Для того чтобы подождать когда что то случится.

var image1 = new Image();
image1.src = '...';

var image2 = new Image();
image2.src = '...';

waitFor(function() {
  return image1.complete && image2.complete;
}, function() {
  alert('Images are loaded.');
});

Понимаю, что функция не идеальна, но довольно проста в использовании, а главное понятно что делает. А иногда позволяет быстро вставить «костыль» в чужое асинхронное приложение, в котором черт ногу сломит.
Немножко не в тему, но вот так писать нельзя: timeout = timeout || 10; Справа от оператора || должен быть либо ноль — либо объект — а для задания числовых значений по умолчанию надо использовать другую конструкцию.
К примеру, как в вашу функцию передать нулевой тайм-аут?
Я, конечно, понимаю, что 0 очень похож на 10 — но джуниоры же увидят :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
интересна бы вам была статья на эту тему?

Да. Это ещё один шанс познакомиться со всё ещё новой для меня темой.
НЛО прилетело и опубликовало эту надпись здесь
Что значит «похожие запросы»? Запрос либо идентичен, либо нет. В каком случае они будут «похожи»? Ваш «козырной упс» решается за 3 минуты с помощью async
НЛО прилетело и опубликовало эту надпись здесь
Примеры для кого писались? Для тех кто уже пару лет работает с асинхронным яваскриптом?
Все проблемы с асинхронностью в JS связаны исключительно с ослиным упрямством разработчиков стандарта ECMAScript, которые почему-то не желают вводить в него механизмы наподобие async/await.
Что-то похожее было с классовой моделью — её тоже долго не хотели вводить, утверждая, что прототипы лучше, а кто утверждает иное, тот просто их не понимает. И только когда уже каждый разработчик успел написать по собственному велосипеду, оборачивающему убогие прототипы в нормальную классовую модель, тогда сперва расширили возможности Object (Object.Create, доступ к __proto__, работу с методами и т.д.), а затем наконец классы появились в стандарте ECMAScript.
Со временем, думаю, и с асинхронностью разберутся, просто это надо было сделать ещё несколько лет назад — зачем на пустом месте усложнять жизнь куче людей?
Разработчики настолько упрямые что ввели Promise, и вводят генераторы. Ну прямо упрямей некуда!
То что вы называете классами — не более, чем синтаксический сахар для уже существующего функционала языка. И пните меня, если прототипное наследование не используется при работе с «классами», которые вы ему противопоставляете.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории