Предупреждение node.js при вызове функции

У меня есть следующий код, который работает

if (fs.existsSync(dirName)) {
    __writeFile();
    return;
}

function __writeFile() {
    writeIntoFile(readStream, destFileName, reject);
    numOfFiles++;
}

Но после его выполнения я получаю предупреждение:

(node:3547) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.

Есть идеи, как этого избежать?

обновить это весь код

yauzl.open(filePath, (err, zipFile) => {
            if (err) {
                __rejectAndLog(err);
                return;
            }
            zipFile.on('entry', __processEntry.bind(null, zipFile))
                .once('error', __rejectAndLog)
                .once('close', () => {
                    resolve();
                });
        });

        function __processEntry(zipFile, entry) {
            if (//$/.test(entry.fileName)) {
                return;
            }
            zipFile.openReadStream(entry, (err, readStream) => {
                if (err) {
                    __rejectAndLog(err);
                    return;
                }
                //Path to drop the files
                let destFileName =  '/' + entry.fileName;
                let dirName = path.join(res);
                if (fs.existsSync(dirName)) {
                    __writeFile();
                    return;
                }
                mkdirp(dirName, (err) => {
                    if (err) {
                        __rejectAndLog(err);
                    } else {
                        __writeFile();
                    }
                });
                function __writeFile() {
                    writeIntoFile(readStream, destFileName, reject);
                    numOfFiles++;
                }
            });
        }

по запросу это содержимое записи в файл

    function writeIntoFile(readStream, filePath, onError) {
        if (fs.existsSync(filePath)) {
            fs.chmod(filePath, '777');
        }
        var ws = fs.createWriteStream(filePath);
        ws.on('error', function (error) {
            onError(error);
        });
        readStream.pipe(ws);
    };

update2

Я пытаюсь изменить его в соответствии с ответом ниже, и он не работает (и где мне поставить режим 777)

        function writeIntoFile(readStream, filePath, onError) {
        if (fs.existsSync(filePath)) {
            fs.chmod(filePath, 0o777, function (err) {

                var ws = fs.createWriteStream(filePath);
                ws.on('error', function (error) {
                    onError(error);
                });
                readStream.pipe(ws);

            });

        }

    };

вы уверены, что ошибка не в writeIntoFile?

Get Off My Lawn 12.07.2018 21:32

Я не вижу здесь асинхронной функции, поэтому я предполагаю, что она в вашей функции writeIntoFile. Чтобы удалить предупреждение, добавьте обратный вызов аргумента, как предлагает предупреждение.

Evert 12.07.2018 21:32

@Evert - не могли бы вы привести пример?

user6171746 12.07.2018 21:33

@GetOffMyLawn - Я не уверен, во время отладки это происходит, когда выполняется возврат, и я перехожу к предыдущей функции (вверх)

user6171746 12.07.2018 21:34

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

Get Off My Lawn 12.07.2018 21:35

Где содержимое writeIntoFile?

Get Off My Lawn 12.07.2018 21:38

@GetOffMyLawn - готово, пожалуйста, посмотрите

user6171746 12.07.2018 21:46

@Evert - пожалуйста, посмотрите мое обновление

user6171746 12.07.2018 21:48
fs.chmod() - виноват.
Patrick Roberts 12.07.2018 21:50

@PatrickRoberts - как вы думаете, в этом проблема? если да, то есть решение?

user6171746 12.07.2018 21:52

@JennyM прочтите документацию, поймите, как это работает, и используйте функцию обратного вызова, чтобы дождаться фактического изменения прав доступа к файлу, прежде чем создавать поток записи.

Patrick Roberts 12.07.2018 21:53

@PatrickRoberts - я изменил его согласно вашему предложению, но он не работает, посмотрите мое обновление

user6171746 12.07.2018 22:06

@PatrickRoberts - не могли бы вы показать, что мне исправить? Я пробую что-то еще (см. мое обновление), и теперь я не вижу предупреждения, но оно не работает ..., кстати, я использую fs с bluebird promisify ...

user6171746 12.07.2018 22:12

@PatrickRoberts - Я изменил его на восьмеричный, как вы сказали, и до сих пор не вижу предупреждения :), но он перестает работать :(

user6171746 12.07.2018 22:17

«Он перестает работать» - это не описательная постановка проблемы. Есть ли ошибки? Если нет, выполняли ли вы свою программу с помощью отладчика, чтобы убедиться, что все вызывается и в правильном порядке? Если да, изменяются ли права доступа к файлам? Что сломано?

Patrick Roberts 12.07.2018 22:21

@PatrickRoberts - ошибки нет, но файл не создается, как раньше, код в моем последнем обновлении выглядит нормально? чего-то не хватает?

user6171746 12.07.2018 22:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
17
258
0

Другие вопросы по теме