首页 > 其他分享 >forEach 中使用await没用,不会等待异步

forEach 中使用await没用,不会等待异步

时间:2023-11-21 18:13:33浏览次数:28  
标签:异步 const activityName index await asset forEach

今天遇到一个问题,在forEach中不会等待异步完成

ActivityImgPath[this.activityName].forEach((path,index) => async () => {
            const key = ActivityImgName[this.activityName][index];
            await $asset.loadAsset(path, SpriteFrame).then(_asset => this.loadedAssets.set(key, _asset));
        });

 

 

只能改成for循环了

  for (let index = 0; index < ActivityImgPath[this.activityName].length; index++) {
    const path = ActivityImgPath[this.activityName][index];
    const key = ActivityImgName[this.activityName][index];
    const _asset = await $asset.loadAsset(path, SpriteFrame);
    this.loadedAssets.set(key, _asset);
  }

解决

标签:异步,const,activityName,index,await,asset,forEach
From: https://www.cnblogs.com/kekit-rei/p/17847230.html

相关文章

  • 异步编程 async、await
    1、使用async修饰符标记的方法称为异步方法1)异步方法的返回值一般是Task<T>,T是真正的返回值类型,Task<int>。惯例:异步方法名字以Async结尾。2)即使方法没有返回值,也最好把返回值声明为非泛型的Task。 3)调用泛型方法时,一般在方法前加上await关,这样拿到的返回值就是泛型指定......
  • 异步处理
    异步处理方式,如下代码ProcStatusChangeEvent<Supplier<Boolean>>eventSendMsg=newProcStatusChangeEvent<>(()->{//下方为业务代码,此处为发送短信例子this.sendMsg(assignee,noteById.getCreateId(),buffer.toString());......
  • Vue公共loading升级版(处理并发异步差时响应)
    公共loading是项目系统中很常见的场景,处理方式也不外乎三个步骤:1.通过全局状态管理定义状态值(vuex、pinia等)。2.在程序主入口监听状态值变化,从而展示/隐藏laoding动画。3.在请求和相应拦截器中变更状态值。第一二步骤处理大同小异,但在第三步中,网上很多博文分享的方法是:在请求......
  • Webman框架使用异步任务
    首先在app目录下创建Task.php<?phpnamespaceapp;useWorkerman\Connection\TcpConnection;classTask{/***只会执行一次*@returnvoid*/publicfunctiononWorkerStart(){echo"进程启动";}publicfunctiononMessage($connection,$task_data){$connect......
  • Spring异步机制:@Async
    概述当一个方法标注@Async注解时,该方法的调用将异步发生;这意味着调用者将在调用后立即返回,方法的实际执行将发生在提交给SpringTaskExecutor的任务中。示例示例1使用@EnableAsync注解启用异步机制@EnableAsync@ConfigurationpublicclassAsyncConfig{} @Service......
  • Flutter/Dart第21天:Dart异步编程(Future/Stream)
    Dart官方文档:https://dart.dev/language/async重要说明:本博客基于Dart官网文档,但并不是简单的对官网进行翻译,在覆盖核心功能情况下,我会根据个人研发经验,加入自己的一些扩展问题和场景验证。Future处理我们有2种方式编写Future异步代码:使用async和wait关键字使用FutureAPI(ht......
  • foreach 循环里进行元素的 remove/add 操作注意点
    一、forEach循环foreach循环(Foreachloop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从JDK1.5.0开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大的方便。通常也被称之为增强for循环。foreach语法格式如下: for(元......
  • 同时调用多个异步请求
    需求为了减少页面等待时间,现有多个接口,需要同时调用。解决有两种写法:Promise.all([interfaceName1(para1),interfaceName2(para2)]).then().catch()Promise.all(arr)中的参数arr:由接口名称(接口参数)组成的数组;then((res)=>{})中的结果res:接口结果所组成的数组。例1......
  • async 和 await 如何捕获异常
    前言之前代码写法中使用async和await,没有捕获异常,导致不满足code===200条件时,页面无法抛出错误,如下所示:async和awaitsubmitForm(){this.$refs["form"].validate(async(valid)=>{if(!valid)return;this.btnLoading=true;......
  • java中的异步任务处理和Feature接口
    简介Java并发包提供了一套框架,大大简化了执行异步任务所需要的开发。框架引入了“执行服务”的概念,封装了任务执行的细节,对任务提交者而言,他可以关注任务本身,如提交任务、获取结果、取消任务。而不用关注任务执行的细节。基本接口①Runnable和Callable:表示要执行的任务②Excecuto......