Javascript обещание вызова происходит только один раз - PullRequest
0 голосов
/ 23 января 2020

Некоторый контекст

Я использую приложение nodejs, которое работает с Twit API.

Я использую его для периодической публикации некоторых изображений на твитере, для генерации изображений с использованием обработки ( java API)

Поэтому я использую библиотеку 'fs' nodejs для выполнения команды: processing-java --sketch="%cd%"\\processing\\sketch --run

Затем я использую eventListener, чтобы узнать, когда обработка закрыта для загрузки сгенерированное изображение, чтобы сделать это, используя это JS обещание:

Файл: generate-sketch-images. js

const {exec} = require('child_process');
const fs = require('fs');
module.exports = new Promise((resolve,reject) =>{
        let cmd = `processing-java --sketch="%cd%"\\processing\\sketch --run`;
        console.log('running processing');
        exec(cmd).addListener('close',() => {
            resolve(fs.readFileSync(
            'processing/paints/paint.png',
            {encoding:'base64'}
            ));
            console.log('image received from processing');
        });
    })

Затем я сделал эта функция:

Файл: бот. js

const generate_image = require('./utils/generate-sketch-images');

async function gerar_imagem(){
    console.log('generating the image');
    let img = await generate_image;
}

Проблема

Функция 'gerar_imagens' только работает в первый раз

Когда я делаю что-то вроде setInterval(gerar_imagens,1000);, это работает только один раз

Я уже сделал много консольных журналов, и кажется, что вызов функции происходит, но обещание игнорируется

кто-то знает, что происходит ??

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