Цитата:
Сообщение от IStiv
всем привет.
A синхронные функции не могли же сломаться в БМ 11 или могли?
тестирую на простом случае, всякие fs.writeFileSync() все вроде норм, но на реальном скрипте с большой логикой тот же fs.writeFileSync() не отрабатывает .
Однако если идти отладчиком, пошагово , я так понимаю вызовы "успевают" выполняться и fs.writeFileSync() отрабатывает.
Скрытый текст
PHP код:
var pth = require('path');
var fs = require('fs');
checkFileExistsAndWrite("D:\\", "test.txt", "hi");
function checkFileExistsAndWrite(targetDirectory, fileName, str) {
var absolutNameAndPt = pth.join(targetDirectory, fileName);
var isExists = fs.existsSync(absolutNameAndPt);
var flVersion = 0;
if (isExists) {
flVersion++;
fileName = flVersion + "_" + fileName;
checkFileExistsAndWrite(targetDirectory, fileName);
}
else {
fs.writeFileSync(absolutNameAndPt, str);
}
}
[свернуть]
|
У меня нормально запустилось, в первый раз создал файл test.txt, во второй 1_test.txt, в третий - 1_1_test.txt.
Одно серьёзное замечание: в рекурсивном вызове функции вы не передаёте строку записи, поэтому во всех файлах кроме test.txt пишется undefined.
З.Ы. Перечитал ещё раз сообщение - у вас приведённый скрипт тоже нормально отрабатывает, и только на "боевом" скрипте нет?
Может объём данных большой?
Попробуйте запустить ваш реальный скрипт , но в файл писать маленькие строки, изменится ли что?
После выполнения скрипта, лог какие-нибудь ошибки выдаёт?
Я так понимаю, в 10 версии всё нормально работает?