Показать сообщение отдельно
  #17 (permalink)  
Старый 13.05.2014, 09:30
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

У меня самые частые - это waterfall и parallel

Пример с waterfall:
// Получение данных пользователя
async.waterfall([
    // Получаем данные пользователя по сессии
    function (cb) {
    },

    // Получаем данные пользователя по запросу
    function (sessionUser, cb) {
    },

    // Делаем проверку доступа и если всё ок, 
    // то отдаём данные
    function (requestUser, sessionUser, cb) {
    },
], callback);


Для задач дробления через setImmediate или nextTick прекрасно подходят циклы async:

var count = 0;

async.whilst(
    function () { return count < 5; },
    
    function (callback) {
        count++;
        
        setImmediate(function () {
            ...
            callback();
        });
    },
    
    function (err) {
        ...
    }
);


Цитата:
Так или иначе, скоро в Nodejs будут доступны встроенные ES6 Promises, думаю, это повлияет на API большинства новых модулей, а может быть и самого Nodejs,
На саму ноду не повлияет никак. Дело в том, что в первых версиях ноды были именно промисы, но от них отказались, т.к. они были чрезвычайно не эффективны для задач ноды.

Дело в том, что при работа на сервере в ноде часто работа идёт с потоками, т.е. данные принимаются / отдаются чанками, что полностью противостоит модели промисов, когда данные получаются сразу. Делается это, как я уже говорил, из соображений эффективности.

Так что какой-то революции нативные промисы не сделают, но всё же хорошо, что их добавят
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 13.05.2014 в 09:36.
Ответить с цитированием