Сообщение от dmitry111
|
var config = require('../config');
var maxPlayers = config.get('game:maxPlayers');
// проверяет наличие свободные мест
// true: отсутствие мест
exports.check = function (users, cb) {
var result
// тут какие-то расчеты
process.nextTick(function () {
cb(result);
});
};
|
А зачем колбек просто так асинхронным делать? Вместе с расчетами логично асинхронно запускать.
Так или иначе, скоро в Nodejs будут доступны встроенные ES6 Promises, думаю, это повлияет на API большинства новых модулей, а может быть и самого Nodejs, я бы уже начал писать асинхронные скрипты в таком стиле:
// проверяет наличие свободные мест
exports.check = function (users) {
return new Promise(function (resolve, reject) {
setImmediate(function () {
try {
var value;
// тут какие-то расчеты
resolve(value);
} catch (reason) {
reject(reason);
}
});
});
};
var waiting = require('../lib/waiting');
var allUsers = 10;
waiting.check(allUsers).then(function (value) {
if (value) {
//есть свободные места
} else {
//нет свободных мест
}
}, function (reason) {
//произошла ошибка
});