Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отличие fs.unlink() от fs.unlinkSync() (https://javascript.ru/forum/misc/47340-otlichie-fs-unlink-ot-fs-unlinksync.html)

TorchTT 19.05.2014 19:33

Отличие fs.unlink() от fs.unlinkSync()
 
Если выполнить код:

fs.unlink(<путь до интересующего файла>, function (err) {
    if (err) throw err;
    console.log("file deleted");
});

то файл удалится и в консоли отобразится:
"file deleted"

Если запустить код:

fs.unlinkSync(<путь до интересующего файла>, function (err) {
    if (err) throw err;
    console.log("file deleted");
});

то файл удалится, но в консоли текст "file deleted" не выводится.

Подскажите, пожалуйста, по какой причне во втором случае текст не показывается?

danik.js 19.05.2014 19:49

Потому что все функции с суффиксом Sync выполняются синхронно и следовательно не принимают вторым агрументом колбэк-функцию, потому что это не имеет смысла.

Пиши так:
fs.unlinkSync(<путь до интересующего файла>);
console.log("file deleted");

Насчет отлова ошибок не уверен. Скорее всего будет брошено исключение, так что оберни в try .. catch, но лучше уточнить в документации по функциям.

TorchTT 19.05.2014 19:53

UPD:

В документации у метода fs.unlink() два аргумента - path, callback, у метода fs.unlinkSync() - всего один аргумент path.

Если верно понял, то в случае:

fs.unlinkSync(<путь до интересующего файла>, function (err) {
    if (err) throw err;
    console.log("file deleted");
});

второй аргумент игнорируется без выведения ошибок.

danik.js
Благодарю за ответ.


Часовой пояс GMT +3, время: 20:48.