让我以更好的方式解释我的问题:
我正在构建一个创建随机图像和推文的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并行执行它们。如何在执行第二个函数之前强制完成一个函数?我尝试了一些解决方案,我在这里找到了回调和外部包,但没有任何效果。这里有人对我做错了什么吗?谢谢!
答案 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)