javascript - 执行异步函数后执行函数
问题描述
我有三个功能,需要一个接一个地执行
$(document).ready(function(){
// Async function
getAllTask();
// Need to call after above function completed its process
loadTasks();
initView();
listenEvents();
});
async function getAllTask(){
// For this ap.request alone I used await, Because of await keyword I make this function as async
await AP.request(...);
}
我想在getAllTask()
函数完成其过程后执行所有其他函数。但是函数getAllTask()
是异步的。请帮我解决这个问题。
有人面临同样的问题吗?
解决方案
调用 getAllTask(); 时也要使用 await;并使函数异步,因此代码将等待函数完成
$(document).ready(async function(){
// Async function
await getAllTask();
// Need to call after above function completed its process
loadTasks();
initView();
listenEvents();
});
async function getAllTask(){
// For this ap.request alone I used await, Because of await keyword I make this function as async
await AP.request(...);
}
您也可以实现 Promise 对象 => https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 以使用 resolve() 来完成异步函数,这里是一个示例
$(document).ready(async function(){
// Async function
await getAllTask().then((data)=>{
//Here you will get resolve(data)
console.log(data)
}).catch((err)=>{
console.log(err)
//here you will get error given
})
// Need to call after above function completed its process
loadTasks();
initView();
listenEvents();
});
async function getAllTask(){
return new Promise((resolve,reject)=>{
// For this ap.request alone I used await, Because of await keyword I make this function as async
await AP.request(...).then((data)=>{
//It will resolve data, same as return
resolve(data)
}
.catch((err)=>{
//It will return the error given
reject(err)
};
}
}
推荐阅读
- dagster - dagster solid 并行运行测试示例
- javascript - 如果然后起作用,我如何验证 Javascript 中的文本?
- node.js - 在 sqlite3(节点包)中,如何按顺序运行多个查询?
- python - 将下载的 Python 的路径添加到 Visual Studio Code
- python - 在 Windows 10 上运行软件时禁用通知
- python - 合并日期上具有不同值的多个数据框
- r - 有没有办法增加系统发育树中允许的物种数量以供我分析?
- bioconductor - clusterProfiler 无法加载包
- google-apps-script - 创建自定义函数以通过 App 脚本验证 Google 电子表格中的数据
- linker-errors - 链接错误 libbfd:在 RHEL8(64 位)上构建 32 位应用程序时