先看一个生成Promise对象的方法

 function createPromise() {var promise;promise = new Promise(function(resolve, reject) {var elapse = Math.random() * 2000;setTimeout(resolve, elapse);});return promise;}

目标是生成10个Promise对象并依次输出Promise的结果。

首先看这种调用方式:

 for (var i = 0; i < 10; i++) {createPromise().then(function() {console.log(i);})}

由于Promise是异步调用,then内的回调函数在for循环之后调用,所以在所有的then callback里面,i=10。所以输出为
10
10
10
10
10
10
10
10
10
10

换另外一种调用方式

  var promiseArray = [];for (var i = 0; i < 10; i++) {promiseArray.push(createPromise());}Promise.all(promiseArray).then(function() {for (i = 0; i < data.length; i++)console.log(i);})

因为Promise.all函数可以并行调用参数中的Promise对象方法,并且将所有Promise对象方法返回值作为数组输入到then回调中,因此这种方式调用可以解决Promise的循环创建和调用。

Javascript 在循环中使用Promise对象相关推荐

  1. 【JavaScript 教程】ES6 中的 Promise对象 详解

    [JavaScript 教程]ES6 中的 Promise对象 详解 1.Promise对象含义 promise是异步编程的一种解决方法. 所谓promise,简单说是一个容器,里面保存着某个未来才会 ...

  2. 浅析JaveScript中的Promise对象 暮雨清秋

    前言 本文旨在简单讲解一下javascript中的Promise对象的概念,特性与简单的使用方法.并在文末会附上一份符合PromiseA+规范的Promise对象的完整实现. 注:本文中的相关概念均基 ...

  3. 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字

    流程控制 流程控制:指代码的执行顺序,有三种方式:顺序结构.分支结构.循环结构 顺序结构: 代码从上到下,从左到右的执行顺序. 分支语句: if语句.if-else语句.if-else if-else ...

  4. JavaScript 之 DOM中的三大对象

    下面是对JavaScript DOM中三大对象的整理,希望可以帮助到有需要的小伙伴. JavaScript 之 DOM中的三大对象 一.Document对象 1.Document对象是什么 Docum ...

  5. 探究点击事件在JavaScript事件循环中的表现

    JavaScript的事件循环event loop很多文章都写的非常详细了.这里也不多做介绍. 在很多文章中都有介绍鼠标事件Mouse Event是属于macrotask.本文探究一下Mouse Ev ...

  6. JavaScript在数组中寻找相同对象元素的问题

    这两天在写项目的时候,我用数组存储对象元素,但是用indexOf方法寻找数组中对象的下标时出现了问题.indexOf方法一直返回-1,即没有找到对象.但我很确定数组中有该对象元素,那究竟是怎么回事呢? ...

  7. JavaScript异步编程【中】 -- Promise 详细解析

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在ES6中,新增加了一种异步编程的解决方案Promise,它是一种规范,是一套处理JavaScript异步的机制. Promise的含义 简单来说, ...

  8. JavaScript Promise对象详解

    Promise是JavaScript异步操作解决方案.介绍Promise之前,先对异步操作做一个详细介绍. JavaScript的异步执行 概述 Javascript语言的执行环境是"单线程 ...

  9. JavaScript:学习笔记(9)——Promise对象

    JavaScript:学习笔记(9)--Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...

最新文章

  1. (pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解
  2. 批处理taskkill运行结束不掉程序以及停留问题
  3. 在SpringMVC中使用Jackson并格式化时间
  4. 常识:佛前三炷香是什么意思
  5. ASP程序中调用函数Now()显示上午下午的问题
  6. Mediawiki随笔
  7. 在Excel中如何引用其他的工作表或者工作簿
  8. Springboot下使用WebSocket和浏览器进行长连接通信
  9. .sh 编译 java_build-java.sh
  10. 文献阅读|Nomograms列线图在肿瘤中的应用
  11. 如何批量打印PDF文件
  12. linux系统使用命令一次显示日历,如何在Linux命令行上使用日历
  13. 解析CSS属性之pointer-events
  14. Proxifier代理指定程序到fiddler
  15. 关镇铨,有人为其洗白,我只想说我的亲身经历,最后悔的就是选择他们
  16. 数据加密标准DES详细过程总结、代码(自运行可实现)
  17. 【转载】CSS3之Clip(裁剪)拓展阅读
  18. 25张漂亮的微距摄影作品欣赏
  19. android ble sample,BleManager ble library 和周边 ble 连接 sample @codeKK Android开源站
  20. 规划IBM Spectrum Scale

热门文章

  1. 使用CIFAR10数据集完成知识蒸馏(参照了快乐就好_Peng博主的博客)致谢
  2. 接入Google Sdk 遇到的坑
  3. 汉诺塔问题的递归和非递归算法
  4. 依赖注入框架-dragger2
  5. 关于有限元应力结果精度的几点讨论
  6. Docker学习笔记 — Swarm搭建Docker集群
  7. 元数据是什么意思_中国股市:股票分红10转10股派5元,你看懂是什么意思了吗?...
  8. 【机器学习】代价函数,损失函数,目标函数区别
  9. python中 inplace 参数的理解
  10. 《微观经济学》 第二章