Сообщение от 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 много, а в рабочем исполнении не находил. По статьям невозможно понять как это все вместе работает ))