Как реализовать непрерывный цикл для скрипта пакета npm - PullRequest
0 голосов
/ 10 октября 2019

Мой код

Мой скрипт index.js выглядит следующим образом:

import personfaces from './dist/index';

const dnte = new personfaces();

dnte.getImage({ width: 256, height: 256, type: 'file' })
.then(res => { console.log('result->', res); })
.catch(err => { console.log('error->', err); });

Я запускаю код с помощью команды терминала "npm start", но я хочу сделать это как непрерывныйповторяющийся цикл, скажем, 100 прогонов. Каждый раз, когда я запускаю код на своем терминале, он загружает изображение, и я хочу, чтобы это был непрерывный процесс с 100 запусками, чтобы он генерировал 100 изображений.

есть ли способ выполнить команду 100 запусков терминала илидобавить 100 трасс в мой основной код.

1 Ответ

0 голосов
/ 10 октября 2019

Да, вы можете, но в этом случае вам это не нужно. Вы должны выполнить свою функцию сто раз. В противном случае вы можете создать bash-файл, запустить его в соответствии с вашей операционной системой и каждый раз запускать код 100 npm start. задание или расписание в ОС.

Но самый простой способ - использовать рекурсивную функцию.

import personfaces from './dist/index';

const dnte = new personfaces();

var count = 100
recursiveFun(0);
function recursiveFun(index) {
  if (index === count)
    return;
  dnte.getImage({ width: 256, height: 256, type: 'file' })
    .then(res => {
      console.log('result->', res);
      recursiveFun(index + 1)
    })
    .catch(err => {
      console.log('error->', err);
      recursiveFun(index)
    });
}

Второй способ - использовать модуль узла:

pМодуль -iteration в npm реализует методы итерации Array, поэтому их можно очень просто использовать с async / await.

Циклически перебирайте массив для выполнения асинхронных действий над каждым элементом. Иногда вы должны выполнить асинхронное действие для каждого элемента массива , но вы должны дождаться завершения предыдущего действия, прежде чем переходить к следующему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...