Комментарии 15
Простите где здесь промис? Тут на лицо стандартный колбечный стиль, а промисом и не пахнет. И уж никак этот путь не приведет вас к PromiseAPI. Вы же сами приводите ссылку на промисы и то что там написано, вообще не сходится, то что вы тут нам представили.
Из этого человек ничего не знающий про промисы легко сделает неправильный вывод, что промисы это плохо. Поэтому я считаю что затронутая тема промисов или не должна быть затронута в таком виде, или должна быть затронута в полной мере, что бы не вводить людей в заблуждение.
function Build(layout, onComplete){
//… async
onComplete(house);
}
Build(layout, function(buildedHouse){
return house = paintRoof(buildedHouse, 'red');
});
Из этого человек ничего не знающий про промисы легко сделает неправильный вывод, что промисы это плохо. Поэтому я считаю что затронутая тема промисов или не должна быть затронута в таком виде, или должна быть затронута в полной мере, что бы не вводить людей в заблуждение.
+19
Привет от Node.js разработчиков, так как в примере пишут но уже редко. (Promise, Async, etc, Ну собственно вы почти все доступные методы описали хотя я могу ошибаться). Будет крайне интересно пощупать вашу библиотеку.
UPD: Еще есть koajs там новая «фича» используется, будущего релиза nodejs 0.12.
UPD: Еще есть koajs там новая «фича» используется, будущего релиза nodejs 0.12.
-4
Немножко не в тему, но я иногда использую небольшую функцию:
Для того чтобы подождать когда что то случится.
Понимаю, что функция не идеальна, но довольно проста в использовании, а главное понятно что делает. А иногда позволяет быстро вставить «костыль» в чужое асинхронное приложение, в котором черт ногу сломит.
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.');
});
Понимаю, что функция не идеальна, но довольно проста в использовании, а главное понятно что делает. А иногда позволяет быстро вставить «костыль» в чужое асинхронное приложение, в котором черт ногу сломит.
-4
Немножко не в тему, но вот так писать нельзя:
К примеру, как в вашу функцию передать нулевой тайм-аут?
Я, конечно, понимаю, что 0 очень похож на 10 — но джуниоры же увидят :)
timeout = timeout || 10;
Справа от оператора ||
должен быть либо ноль — либо объект — а для задания числовых значений по умолчанию надо использовать другую конструкцию.К примеру, как в вашу функцию передать нулевой тайм-аут?
Я, конечно, понимаю, что 0 очень похож на 10 — но джуниоры же увидят :)
-4
НЛО прилетело и опубликовало эту надпись здесь
Нулевого таймаута не существует.
-3
интересна бы вам была статья на эту тему?
Да. Это ещё один шанс познакомиться со всё ещё новой для меня темой.
-3
НЛО прилетело и опубликовало эту надпись здесь
Примеры для кого писались? Для тех кто уже пару лет работает с асинхронным яваскриптом?
+3
Все проблемы с асинхронностью в JS связаны исключительно с ослиным упрямством разработчиков стандарта ECMAScript, которые почему-то не желают вводить в него механизмы наподобие async/await.
Что-то похожее было с классовой моделью — её тоже долго не хотели вводить, утверждая, что прототипы лучше, а кто утверждает иное, тот просто их не понимает. И только когда уже каждый разработчик успел написать по собственному велосипеду, оборачивающему убогие прототипы в нормальную классовую модель, тогда сперва расширили возможности Object (Object.Create, доступ к __proto__, работу с методами и т.д.), а затем наконец классы появились в стандарте ECMAScript.
Со временем, думаю, и с асинхронностью разберутся, просто это надо было сделать ещё несколько лет назад — зачем на пустом месте усложнять жизнь куче людей?
Что-то похожее было с классовой моделью — её тоже долго не хотели вводить, утверждая, что прототипы лучше, а кто утверждает иное, тот просто их не понимает. И только когда уже каждый разработчик успел написать по собственному велосипеду, оборачивающему убогие прототипы в нормальную классовую модель, тогда сперва расширили возможности Object (Object.Create, доступ к __proto__, работу с методами и т.д.), а затем наконец классы появились в стандарте ECMAScript.
Со временем, думаю, и с асинхронностью разберутся, просто это надо было сделать ещё несколько лет назад — зачем на пустом месте усложнять жизнь куче людей?
-2
Разработчики настолько упрямые что ввели Promise, и вводят генераторы. Ну прямо упрямей некуда!
+2
То что вы называете классами — не более, чем синтаксический сахар для уже существующего функционала языка. И пните меня, если прототипное наследование не используется при работе с «классами», которые вы ему противопоставляете.
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Как я завел дружбу с асинхронностью в JavaScript