javascript - 异步函数的 JavaScript 问题
问题描述
我知道关于这个话题已经有很多问题了,但是我不能让我的(异步)代码工作,我真的可以使用一些帮助。
我有三个函数,每个函数都有一个 AJAX 调用。这三个函数中的每一个最终都会返回一个数组。当三个数组最终完成时,我想调用另一个函数showInfo()
,该函数将三个先前接收的数组作为参数。
我的错误是什么?
showInfo(await getMovies(), await getActors(), await getGenres());
async function getMovies() {
//Ajax request which eventually returns a 'movie' array
}
async function getActors() {
//Ajax request which eventually returns an 'actor' array
}
async function getGenres() {
//Ajax request which eventually returns a 'genre' array
}
function showInfo(movies, actors, genres){
//process data
}
更新:
我发现了我的错误。和函数不包含承诺getMovies()
。此外,这三个功能不需要. 但是,包含调用(带有语句)的函数确实如此。getActors()
getGenres()
async
showInfo()
await
解决方案
我发现了我的错误。和函数不包含承诺getMovies()
。此外,这三个功能不需要. 但是,包含调用(带有语句)的函数确实如此。getActors()
getGenres()
async
showInfo()
await
现在是这样的:
doEverything();
async function doEverything() {
var movies = await getMovies();
var actors = await getActors();
var genres = await getGenres();
showInfo(movies, actors, genres);
}
function getMovies() {
return new Promise(resolve => {
//Ajax request which eventually returns a 'movies' array
});
}
function getActors() {
return new Promise(resolve => {
//Ajax request which eventually returns an 'actor' array
});
}
function getGenres() {
return new Promise(resolve => {
//Ajax request which eventually returns a 'genres' array
});
}
function showInfo(movies, actors, genres) {
//process data
}
推荐阅读
- r - 如何打开 .json.gz 格式文件并创建数据框 n R?
- php - 无法将“markdown_to_html”过滤器添加到树枝
- http - ASP.NET Core 发布到文件系统并传输到其他机器后没有 HTTPS
- google-app-engine - Google App Engine 是否可以从私有 Docker 注册表中提取?
- c++ - C++:在运行时影响库加载顺序
- python - 嵌套字典加倍键
- c - 为什么符号表中某些全局变量的大小为零?
- android - 使用 AsyncTask 在 Fragment 的 RecyclerView 中显示来自 json 的数据?
- autohotkey - 运行程序后触发剪贴板更改
- angular - 在这个用例中,ngModel 指令究竟是如何工作的?