Показать сообщение отдельно
  #1 (permalink)  
Старый 05.04.2013, 01:39
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Понимание асинхронности в node.js
Всем привет.
Недавно начал изучать ноду, и столкнулся с непониманием того, как нужно правильно писать в асинхронном стиле.
Попытаюсь объяснить суть проблемы на простом примере чтения данных с различных источников.

Как я делал в пхп:

//Считывал содержимое файла в переменную ($file).
//Делал запрос на некий url и получал данные ($curl).
//Делал запрос к бд и выбираю нужные данные ($db).
//А потом вывожу их в нужной мне последовательности
echo $file;
echo $db;
echo $curl;


Как подобное делается в ноде?

Или вот простой пример чтения файла и вывода его содержимого:

var fs = require('fs'),
    fileText = '',
    fileText2 = '';

fs.readFile('file.txt', 'utf-8', function(err, data) {
  fileText = data;
  console.log('\ncallback вызван\n');
});
fs.readFile('file2.txt', 'utf-8', function(err, data) {
  fileText2 = data;
  console.log('\ncallback2 вызван\n');
});

console.log('\n\n__начало html-разметки__\n\n' + fileText + '\n\n__прочий html-код__' + fileText2);



Если запустить этот код, то при удачном выполнении выведется сначало содержимое последней строки, а только потом коллбэки, хотя, как видите, нужно несколько другое.


Не побрезгаю ссылками на статьи(с примерами) на английском/русском языке

Последний раз редактировалось (Sandr), 05.04.2013 в 23:36.
Ответить с цитированием