如何使用 NodeJS 处理依赖于另一个函数结果的函数



让我用一种更好的方式解释我的问题:

我正在构建一个TwitterBot,它创建随机图像并发布它们。
为此,我在NodeJS应用程序中有两个函数,一个名为createImage,另一个名为tweetIt

createImage创建PNG文件。
tweetIt获取此图像,并使用twitter API将其发布。

所以我有这样的东西:

function createImage(){
  //creates an image and saves it on disk
}
function tweetIt(){
  //takes the image from the disk and tweets it
}

我需要在tweetIt()之前执行createImage(),因为第二个函数完全依赖于第一个函数产生的结果。

createImage();
tweetIt();

但是NodeJS并行执行它们。如何在执行另一个函数之前强制完成一个函数?我尝试了一些解决方案,我在这里找到了回调和外部包,但没有工作。有人知道我做错了什么吗?谢谢!

你可以让createImage返回一个promise

function createImage(){
  return new Promise((resolve, reject) => {
    // create image then resolve promise.
    // ...
    resolve()
  })
}
function tweetIt() {
  //takes the image from the disk and tweets it
}
createImage().then(tweetIt)

最新更新