js数组循环,当前循环完成后执行下次循环

前言

在这里插入图片描述
上图中,点击播放icon,图中左边地球视角会按照视角列表依次执行。u3D提供了api,但是我们如何保证在循环中依次执行。即第一次执行完成后,再走第二次循环。很多人的第一思路就是promise。对,不错,出发的思路是正确的,但是要怎么组合呢?

// 设置摄像机镜头
export const setCamera = (config: any)=>{
   
	const {
    cimInstance } = window;
	return new Promise((resolve, reject) => {
   
		cimInstance.api.setCameraLook(config, (result:any)=>{
   
		   resolve(result);
		 })
		});
	 });
}

export const setCameraByArray = async (configArray:any[]=[])=>{
   
	for (const config of configArray) {
   
      await setCamera(config )
    }
 }
setCameraByArray(arrList)

总结

  1. 返回promise
export const setCamera = (config: any)=>{
   
	return new Promise((resolve, reject) => {
   
		function(执行代码块)
	 });
}
  1. async await执行
export const setCameraByArray = async (configArray:any[]=[])=>{
   
	for (const config of configArray) {
   
      await setCamera(config )
    }
 }

3.调用

setCameraByArray(arrList)

踩坑 用for of 代替for in、forEach等

相关推荐

  1. MySQL 循环执行INSERT

    2024-01-08 21:32:04       43 阅读
  2. js之事件循环

    2024-01-08 21:32:04       50 阅读
  3. Node.js 事件循环

    2024-01-08 21:32:04       24 阅读
  4. (js)循环判断找到满足条件的单项结束循环

    2024-01-08 21:32:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 21:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 21:32:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 21:32:04       82 阅读
  4. Python语言-面向对象

    2024-01-08 21:32:04       91 阅读

热门阅读

  1. 【C++PCL】点云处理最小图割分割

    2024-01-08 21:32:04       69 阅读
  2. Spring中使用的设计模式

    2024-01-08 21:32:04       45 阅读
  3. CentOS上设置中文/英文语言环境

    2024-01-08 21:32:04       63 阅读
  4. python归并排序

    2024-01-08 21:32:04       55 阅读
  5. Leetcode 1732. Find the Highest Altitude

    2024-01-08 21:32:04       62 阅读
  6. SQL注入是什么呢?

    2024-01-08 21:32:04       63 阅读
  7. Vue面试题

    2024-01-08 21:32:04       73 阅读