【问题标题】:Why is this function running before another one?为什么这个函数在另一个函数之前运行?
【发布时间】:2021-10-18 08:40:12
【问题描述】:

所以我正在使用 Node.js 和 Twit 库制作一个 twitter 机器人,因此要将图片与您的推文一起发送,您需要将图像上传到 twitter 并获取与您的图像相关的 media-id-string。所以在我的代码中,如果没有很好的sighs 将字符串写入 txt 文件并在返回它的函数之外,我无法真正获得媒体 ID,是的,我知道它非常笨拙。此外,功能 1 在功能 2 之后运行,我认为它异步运行,但我不确定。那么任何人都可以帮我修复这个糟糕的代码

这是我的代码:

function upload_media(){
  var b64content = fs.readFileSync('download.jpg').toString('base64')
  T.post('media/upload', { media_data: b64content }, function (err, data, response){ //Function 1
    fs.writeFileSync('media-string.txt', data.media_id_string)
  })
  media_string =  fs.readFileSync('media-string.txt', {encoding:'utf8'})//Function 2
  return media_string
}

【问题讨论】:

标签: node.js twitter async-await


【解决方案1】:

使用异步等待语法 使用 fs.readfile 和 fs 写入文件而不是 fs.readfileSync

类似的东西 How to read file with async/await properly?

const uploadmedia = async () => {
  var b64content = await fs.readFile('follow example');
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    相关资源
    最近更新 更多