Pull to refresh

Comments 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 — но джуниоры же увидят :)
UFO just landed and posted this here
UFO just landed and posted this here
интересна бы вам была статья на эту тему?

Да. Это ещё один шанс познакомиться со всё ещё новой для меня темой.
UFO just landed and posted this here
Что значит «похожие запросы»? Запрос либо идентичен, либо нет. В каком случае они будут «похожи»? Ваш «козырной упс» решается за 3 минуты с помощью async
UFO just landed and posted this here
Примеры для кого писались? Для тех кто уже пару лет работает с асинхронным яваскриптом?
Все проблемы с асинхронностью в JS связаны исключительно с ослиным упрямством разработчиков стандарта ECMAScript, которые почему-то не желают вводить в него механизмы наподобие async/await.
Что-то похожее было с классовой моделью — её тоже долго не хотели вводить, утверждая, что прототипы лучше, а кто утверждает иное, тот просто их не понимает. И только когда уже каждый разработчик успел написать по собственному велосипеду, оборачивающему убогие прототипы в нормальную классовую модель, тогда сперва расширили возможности Object (Object.Create, доступ к __proto__, работу с методами и т.д.), а затем наконец классы появились в стандарте ECMAScript.
Со временем, думаю, и с асинхронностью разберутся, просто это надо было сделать ещё несколько лет назад — зачем на пустом месте усложнять жизнь куче людей?
Разработчики настолько упрямые что ввели Promise, и вводят генераторы. Ну прямо упрямей некуда!
То что вы называете классами — не более, чем синтаксический сахар для уже существующего функционала языка. И пните меня, если прототипное наследование не используется при работе с «классами», которые вы ему противопоставляете.
Sign up to leave a comment.

Articles