Pull to refresh

Comments 14

UFO just landed and posted this here
Ну во первых то что вы привели не является асинхронными вызовами функций. В Вашем примере код будет выполнен незамедлительно без ожидания результатов и не последовательно в случае асинхронных вызовов.

Имхо, при разработке библиотеки нужно учитывать, что пользователь может написать очень плохой код. Лучше обернуть вызовы f в process.nextTick().
Sannis вы правы, я выложил простой вариант реализации.
Все это, в принципе, можно заменить 5-ю строками:
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 that.addTo = function () {} AQueue.prototype.addTo = function () {} ;)
Спасибо большое azproduction за развернутый ответ! Доходчиво и понятно. И Вы конечно правы, насчет использования AQueue.prototype для добавления свойств объекта. В большинстве случаев, применяют именно этот подход.
 AQueue.prototype.addTo = $.noop; // ;)
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.

Спасибо xonix Вам огромное за то что поделились своей реализацией! Познавательно и интересно.
Не понимаю почему всем так не нравятся эти callback'и если писать на кофе, то код получается весьма красивый и удобно читаемый, а главное имеет понятный смысл при прочтении, в отличии от всяких Step.js, async.js;
Zelgadis это верно, скрипты сверстанные на coffee script смотрятся менее разреженными ввиду отсутствия скобок и разделителей и более наглядного вида. Возможно, что мне стоит обратить на это внимание, тоже! Он становится все популярнее и популярнее. Спасибо!
UFO just landed and posted this here
markPnk спасибо Вам, не знал что есть такое чудо как IcedCoffeeScript! Обязательно попробую его в действии в своих проектах.
Sign up to leave a comment.

Articles