@EVOSandru6

Как в node Js или chokidar сделать слежение за созданием файла и продолжить скрипт только после его создания?

Добрый день.

Пробовал обернуть chokidar.watch в setIntreval:

const log = console.log.bind(console);
log('start......');

    const interval = setInterval(() => {
        chokidar.watch('file', {
            interval: 500,
        }).add(path.resolve(__dirname, 'download'))
            .on('add', path => {
                log(`File ${JSON.stringify(path)} has been added`);
                clearInterval(interval)
            });
    }, 500);

    log('finish......');


Еще до того, как я добавляю в текущую папку файл с именем download,
Уже на выходе:

start......
finish......


Вопрос, как можно сделать так, чтобы реализовать finish вышел только после добавления файла.
Реально ли это сделать без setInterval?
Реально ли это сделать без Promise?

P.S.

Промежуточный вариант:

const promise = new Promise((resolve, reject) => {
        chokidar.watch('file', {
            interval: 500,
        }).add(path.resolve(__dirname, 'watching', 'download'))
            .on('add', path => {
                resolve('finish!');
            });
    });

    promise.then(data => console.log(data));
  • Вопрос задан
  • 345 просмотров
Решения вопроса 1
@McBernar
В ноде сейчас асинхронная работа с файлами. Чем вам этот вариант не подходит?

Есть старые методы sync, можете их посмотреть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы