Задать вопрос
@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));
  • Вопрос задан
  • 358 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@McBernar
В ноде сейчас асинхронная работа с файлами. Чем вам этот вариант не подходит?

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

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

Похожие вопросы