Доброго времени суток, изучаю JS и в данный момент платформу NodeJS, столкнулся с тем, что не могу понять, как правильно пишутся свои модули на Nod-е. Откровенно говоря, в голове уже каша из event-ov, callback-ov, nextTickov (setTimeout)
Везде как эталон асинхронности приводят пример модуль FS:
var fs = require('fs');
fs.readFile('name.txt', function (err, data) {
});
Подключили модуль fs, вызвали его метод и передали в него переменную и колбэк.
Проблема в том, что нигде не пишут, а что там происходит внутри. Путем гугления и изучения, пришел к такому коду :
// my custom module
function MyModule(something, callback){
if(something === 'OK'){ // Обрабатываем как-то something и передаем дальше
process.nextTick( сallback(null, something));
} else {
process.nextTick( callback('Error'));
};
};
module.exports = MyModule;
Ну и использование его как и модуль fs:
var MyModule = require('MyModule');
MyModule('something', function( err, value ) {
if(err) console.log('Вай-вай, беда!')
// ну а тут делаем еще что-то с value
});
Ну а теперь сам вопрос, будет ли это асинхронным и вообще работать или я не в ту степь забрел совсем ?
Благодарю.
ЗЫ. так же в голове крутится идея навесить на всё что можно event-ы, но пока не могу оформить связно как это вижу. Если кому не сложно киньте код подобного на ивентах или линк на статью толковую. Еще раз спасибо.