У меня есть функция, как это:Как сделать некоторый синхронный запуск кода перед другим асинхронным кодом?
var download = function(url, name) {
http.get(url, function(response) {
// part1 : create a new folder if it doesn't exist
dir = './name';
if (!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
// part 2: download and save file into that folder
response.on('data', function (data) {
fs.appendFileSync(dir, data);
});
})
}
Я хочу часть 1 закончить до части 2 прогонов (так что я могу иметь каталог для части 2). Как я могу это сделать ?
(В приведенном выше коде, как я знаю до сих пор (я новичок в node.js), обе части будут работать одновременно, поэтому я не уверен, что часть 1 будет всегда заканчиваться до запуска части 2).
* обе части будут работать одновременно * - Нет, они не будут. 'existsSync' и' mkdirSync' блокируют вызовы. Таким образом, только после того, как они будут выполнены, обработчик события будет прикреплен. – thefourtheye
В Node.js, если вы видите метод, заканчивающийся на 'Sync', это означает, что он будет работать синхронно. (Подобно простому C/Java/C# и т. Д.). Вы не используете эти методы в Node.js, так как в основном это связано с асинхронным исполнением. – Xeon
@ thefourtheye: thks для вашего объяснения –