javascript - 执行代码行的Javascript顺序
问题描述
我正在做一个在 Raspberry Pi 3 中实现的 Telegram Bot。所以我的第一个想法是使用带有 Node.js 的“telegraf”并在那里执行 BOT 的代码,但也使用“shell.js”我想运行一些树莓终端上的命令。问题是我希望 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 没有完成),然后在 Telegram 聊天中写入“正在下载”和“正在将文件上传到 Google Drive...”。
所以,我想知道如何使这部分代码按顺序执行:首先编写下载,执行脚本,等到它完成然后编写上传......(对不起,我不太了解Javascript所以我现在的知识是基本的)
解决方案
推荐阅读
- javascript - 限制具有值范围的输入数字框
- amazon-web-services - 使用 terraform 挂载 ebs_block_device
- debugging - 如何强制 glfwInit() 失败以进行调试?
- javascript - ReactNative 过滤数据
- javascript - 我可以在 JavaScript 文件中创建 C# 类对象吗?
- php - 在容器中找不到 Docker“/usr/bin/php”
- javascript - 我们如何从多级嵌套数组中删除对象并在 JS 中返回父数组?
- wordpress - 我们可以在邮件验证后设置自定义 url
- css - 当我刷新时,媒体查询会更改 min-width
- python - 计算图上的中心度