javascript - 等待异步函数

标签 javascript asynchronous promise

我知道这是开发人员提出的常见问题,但我似乎找不到与我有相同问题的人。

我正在创建一个游戏,这个游戏有很多工厂,当被调用时会返回一个游戏对象,例如玩家。在游戏开始之前,我需要确保加载所有所需的图像,我通过简单地将 .onload 事件转换为 promise ,并将其放入带有等待调用的异步函数中来做到这一点。但是,由于我组织游戏的方式发生了变化,我将需要在创建游戏对象的工厂中处理图像加载。这是一个问题,因为现在游戏不知道所有图像何时加载。我想我也许能够使这些工厂异步并等待它们,它们将有一个也等待的异步函数调用,但我不相信这是可能的。如此抽象,这就是我想要的:

我有一个 promise gotBanana,一旦我拿到香蕉,这个 promise 就会得到解决。

这是一个名为 getBananas() 的异步函数,它在循环中获取大量香蕉,它等待 gotBanana promise 解决每个循环迭代。

我想将其放入另一个(可能是异步)函数中,但我希望该函数等待 getBananas() 函数完成。

是否可以这样做或者我是否需要以不同的方式处理这种情况?

最佳答案

也许您正在寻找Promise.all它并行解决所有 promise 并在完成时返回 promise 。因此,您只需映射所有 Assets (图像或其他)并等待即可。

关于javascript - 等待异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55882730/

相关文章:

javascript If/Else 循环;异步问题

java - GWT:如何创建自己的异步方法?

javascript - 在处理程序中创建了一个 promise ,但没有从中返回

javascript - 使用 Jquery 重定向到哈希 url

javascript - 使用 jQuery 按列值对 tbody 元素进行排序

javascript - 关于 underscore.js 中的函数是异步还是同步的一些担忧

javascript - 如何设计可以具有同步或异步响应的 API

javascript - async 函数什么时候真正返回一个未决的 promise ?

javascript - 10 秒后隐藏图像

javascript - 在 iFrame 中使用 JavaScript top.init