让我用一种更好的方式解释我的问题:
我正在构建一个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)