Comments 14
UFO just landed and posted this here
Имхо, при разработке библиотеки нужно учитывать, что пользователь может написать очень плохой код. Лучше обернуть вызовы
f
в process.nextTick()
.0
Sannis вы правы, я выложил простой вариант реализации.
0
Все это, в принципе, можно заменить 5-ю строками:
В действии
Демка: jsfiddle.net/JpbWh/
Использую, для спрямления коллбэков. Чаще этого хватает — по необходимости можно и что-то большее прикурить.
PSthat.addTo = function () {}
var sequence = [/*list of functions*/],
step = function () {
sequence.shift()(step); // вся магия тут :)
}
step();
В действии
(function () {
var sequence = [
function (next) {
console.log('1');
next();
},
function (next) {
console.log('2-a');
window.setTimeout(next, 1000);
console.log('2-b');
},
function () {
console.log('3 - TADA');
}
];
(function step() {
sequence.shift()(step);
}());
}());
Демка: jsfiddle.net/JpbWh/
Использую, для спрямления коллбэков. Чаще этого хватает — по необходимости можно и что-то большее прикурить.
PS
AQueue.prototype.addTo = function () {}
;)+4
Спасибо большое azproduction за развернутый ответ! Доходчиво и понятно. И Вы конечно правы, насчет использования AQueue.prototype для добавления свойств объекта. В большинстве случаев, применяют именно этот подход.
0
AQueue.prototype.addTo = $.noop; // ;)
-1
akzhan неее так не пойдет :) addTo — это не «заглушка» :)
$.noop
Description: An empty function.
version added: 1.4 jQuery.noop()
You can use this empty function when you wish to pass around a function that will do nothing.
This is useful for plugin authors who offer optional callbacks; in the case that no callback is given, something like jQuery.noop could execute.
$.noop
Description: An empty function.
version added: 1.4 jQuery.noop()
You can use this empty function when you wish to pass around a function that will do nothing.
This is useful for plugin authors who offer optional callbacks; in the case that no callback is given, something like jQuery.noop could execute.
0
Мой велосипед zlo.rt.mipt.ru/?read=7913363. Достоинство — можно в один конвеер помещать другой.
0
Спасибо xonix Вам огромное за то что поделились своей реализацией! Познавательно и интересно.
0
Не понимаю почему всем так не нравятся эти callback'и если писать на кофе, то код получается весьма красивый и удобно читаемый, а главное имеет понятный смысл при прочтении, в отличии от всяких Step.js, async.js;
0
Zelgadis это верно, скрипты сверстанные на coffee script смотрятся менее разреженными ввиду отсутствия скобок и разделителей и более наглядного вида. Возможно, что мне стоит обратить на это внимание, тоже! Он становится все популярнее и популярнее. Спасибо!
0
markPnk спасибо Вам, не знал что есть такое чудо как IcedCoffeeScript! Обязательно попробую его в действии в своих проектах.
0
Sign up to leave a comment.
Аналог паттерна Step и вложенность асинхронных вызовов