Показать сообщение отдельно
  #12 (permalink)  
Старый 13.05.2014, 01:10
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от kobezzza
2) Используй паттерны / фреймворки для работы с асинхронностью. Выбор фреймворка и паттерна зависит от предпочтений, я использую Async.
вот по поводу Async - как с ним работать?

Я понимаю для чего эти методы, но я не знаю где их применить
Например waterfall:

async.waterfall([
    function(callback){
        callback(null, 'one', 'two');
    },
    function(arg1, arg2, callback){
      // arg1 now equals 'one' and arg2 now equals 'two'
        callback(null, 'three');
    },
    function(arg1, callback){
        // arg1 now equals 'three'
        callback(null, 'done');
    }
], function (err, result) {
   // result now equals 'done'    
});


обходит несколько функций, результат которых идет к следующей и так до конца. Но на деле то, как с этим работать?


У меня много моментов в коде, когда метод одного модуля задействует метод другого модуля.

Вот пример моего кода:

var config = require('../config');

var maxPlayers = config.get('game:maxPlayers');

// проверяет наличие свободные мест
// true: отсутствие мест
exports.check = function (users, cb) {
   var result

  // тут какие-то расчеты

  process.nextTick(function () {
    cb(result);
  });
};



var waiting = require('../lib/waiting');

var allUsers = 10;

waiting.check(allUsers, function (waiting) {
  if (waiting) { 
  } else {
  }
});


Передалось, расчеты сделаны, со следующим тиком callback вернет результат.

Где мне тут использовать этот async?

Также если есть примеры кода (или проект) с использованием async, поделись! А то статей про async много, а в рабочем исполнении не находил. По статьям невозможно понять как это все вместе работает ))

Последний раз редактировалось dmitry111, 13.05.2014 в 01:40.
Ответить с цитированием