【问题标题】:Wait for async function等待异步功能
【发布时间】:2019-04-28 01:00:52
【问题描述】:

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

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

我有一个承诺gotBanana,一旦我得到我的香蕉,它就会解决。

这是在一个名为 getBananas() 的异步函数中,它在循环中得到很多香蕉,它等待 gotBanana 承诺解决每个循环迭代。

我想把它放在另一个(可能是异步的)函数中,但我希望该函数等待 getBananas() 函数完成。

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

【问题讨论】:

  • 你能写一些代码吗?你需要什么??这可能会更好

标签: javascript asynchronous promise


【解决方案1】:

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

【讨论】:

  • 啊,这可以工作,它需要我改变事情的工作方式,但当我第一次启动系统时,我实际上正在寻找类似的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 2021-10-05
  • 2021-08-23
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多