我知道这是开发人员提出的常见问题,但我似乎找不到与我有相同问题的人。
我正在创建一个游戏,这个游戏有很多工厂,当被调用时会返回一个游戏对象,例如玩家。在游戏开始之前,我需要确保加载所有所需的图像,我通过简单地将 .onload 事件转换为 promise ,并将其放入带有等待调用的异步函数中来做到这一点。但是,由于我组织游戏的方式发生了变化,我将需要在创建游戏对象的工厂中处理图像加载。这是一个问题,因为现在游戏不知道所有图像何时加载。我想我也许能够使这些工厂异步并等待它们,它们将有一个也等待的异步函数调用,但我不相信这是可能的。如此抽象,这就是我想要的:
我有一个 promise gotBanana
,一旦我拿到香蕉,这个 promise 就会得到解决。
这是一个名为 getBananas()
的异步函数,它在循环中获取大量香蕉,它等待 gotBanana
promise 解决每个循环迭代。
我想将其放入另一个(可能是异步)函数中,但我希望该函数等待 getBananas()
函数完成。
是否可以这样做或者我是否需要以不同的方式处理这种情况?
最佳答案
也许您正在寻找Promise.all它并行解决所有 promise 并在完成时返回 promise 。因此,您只需映射所有 Assets (图像或其他)并等待即可。
关于javascript - 等待异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55882730/