Javascript порядок выполнения строк кода - PullRequest
1 голос
/ 26 сентября 2019

Я делаю Telegram Bot, реализованный в Raspberry Pi 3. Поэтому моя первая идея - использовать telegraf с Node.js и выполнять там код BOT, но также и с shell.js, который я хотел бызапустить несколько команд на Raspberry Terminal.Проблема в том, что я хотел бы, чтобы код из BOT ожидал загрузки файла, а затем программа продолжала ...

Проблема в том, что программа делает некоторые вещи не в порядке появления.

    var shell = require('shelljs')

    const download = (ctx) => {
            ctx.reply('Downloading...')

            shell.exec('sudo bash script_Download.sh ' + ctx.command.args[0])
            while(shell.exec('ps -ef | grep wget | grep -v grep')!=''){}
            ctx.reply('Downloaded.')

            ctx.reply('Uploading the file to Google Drive...')
            shell.exec('mv ~/Super_Secret_File /mnt/gdrive/TRBDownloads')     
    }
module.exports = download

Здесь, в этом конкретном коде, я хотел бы, чтобы программа написала «Загрузка ...», после этого начинается запуск script_Download , и программа приостанавливается до выполнения команды wget.закончен (внутри script_Downlaod ) эта часть выполняется следующим образом: while(shell.exec('ps -ef | grep wget | grep -v grep')!=''){}.Но возвращение выглядит как «Файл не найден» (это означает, что wget не завершен), и после этого «Загрузка» и «Загрузка файла на Google Drive ...» записывается в чат Telegram.

Итак, я хотел бы знать, как сделать так, чтобы эта часть кода выполнялась по порядку: Сначала запишите загрузку, запустите сценарий, дождитесь его завершения и затем запишите Загрузка ... ( Извините, яЯ не знаю, как много в Javascript, поэтому мои знания сейчас являются базовыми ? )

...