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

时间:2016-11-14 02:33:44

标签: javascript node.js file asynchronous twitter

让我以更好的方式解释我的问题:

我正在构建一个创建随机图像和推文的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
}

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

createImage();
tweetIt();

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

1 个答案:

答案 0 :(得分:1)

您可以让createImage返回一个承诺

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)