javascript - 一个 onComplete 回调用于执行两个函数中的最后一个

标签 javascript function asynchronous callback

我有两个同时运行的函数,我希望回调在最后一个函数完成时只执行一次。

function gotoPage () {
  //only call this once for the last one
}
app.update(gotoPage);
geolocation.getCurrentPosition(gotoPage);

我意识到我可以嵌套它们以顺序执行,但出于性能原因我不想这样做。 有没有一个巧妙的技巧可以有效地做到这一点?

最佳答案

通过 promise 解决:

Promise.all([
    new Promise(resolve => app.update(resolve)),
    new Promise(resolve => geolocation.getCurrentPosition(resolve)),
]).then(() => gotoPage());

您可以在此处阅读 Promise:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises

关于javascript - 一个 onComplete 回调用于执行两个函数中的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560218/

相关文章:

javascript - angular js href在url开头添加不安全

javascript - react 上下文: Nested re-use/enhancement (anti-pattern?)

C 函数指针 - 当你放弃一个参数时会发生什么?

java - 如何为Spring中的每个请求添加延迟到@Async方法

javascript - Node.js 从 do while 循环中调用异步函数

javascript - ASP.NET IIS 应用程序中的客户端脚本缓存

javascript - 我想隐藏特定单元格的表格行

c++ - 编译普通/模板函数的差异,C++

c - 如果在 main 中定义,为什么程序只提供输出(我该如何更改它)?

javascript - 如何使用 JavaScript 向我的文件系统发出 AJAX 请求?