Javascript 在循环中使用Promise对象
先看一个生成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对象相关推荐
- 【JavaScript 教程】ES6 中的 Promise对象 详解
[JavaScript 教程]ES6 中的 Promise对象 详解 1.Promise对象含义 promise是异步编程的一种解决方法. 所谓promise,简单说是一个容器,里面保存着某个未来才会 ...
- 浅析JaveScript中的Promise对象 暮雨清秋
前言 本文旨在简单讲解一下javascript中的Promise对象的概念,特性与简单的使用方法.并在文末会附上一份符合PromiseA+规范的Promise对象的完整实现. 注:本文中的相关概念均基 ...
- 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字
流程控制 流程控制:指代码的执行顺序,有三种方式:顺序结构.分支结构.循环结构 顺序结构: 代码从上到下,从左到右的执行顺序. 分支语句: if语句.if-else语句.if-else if-else ...
- JavaScript 之 DOM中的三大对象
下面是对JavaScript DOM中三大对象的整理,希望可以帮助到有需要的小伙伴. JavaScript 之 DOM中的三大对象 一.Document对象 1.Document对象是什么 Docum ...
- 探究点击事件在JavaScript事件循环中的表现
JavaScript的事件循环event loop很多文章都写的非常详细了.这里也不多做介绍. 在很多文章中都有介绍鼠标事件Mouse Event是属于macrotask.本文探究一下Mouse Ev ...
- JavaScript在数组中寻找相同对象元素的问题
这两天在写项目的时候,我用数组存储对象元素,但是用indexOf方法寻找数组中对象的下标时出现了问题.indexOf方法一直返回-1,即没有找到对象.但我很确定数组中有该对象元素,那究竟是怎么回事呢? ...
- JavaScript异步编程【中】 -- Promise 详细解析
文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在ES6中,新增加了一种异步编程的解决方案Promise,它是一种规范,是一套处理JavaScript异步的机制. Promise的含义 简单来说, ...
- JavaScript Promise对象详解
Promise是JavaScript异步操作解决方案.介绍Promise之前,先对异步操作做一个详细介绍. JavaScript的异步执行 概述 Javascript语言的执行环境是"单线程 ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)--Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
最新文章
- (pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解
- 批处理taskkill运行结束不掉程序以及停留问题
- 在SpringMVC中使用Jackson并格式化时间
- 常识:佛前三炷香是什么意思
- ASP程序中调用函数Now()显示上午下午的问题
- Mediawiki随笔
- 在Excel中如何引用其他的工作表或者工作簿
- Springboot下使用WebSocket和浏览器进行长连接通信
- .sh 编译 java_build-java.sh
- 文献阅读|Nomograms列线图在肿瘤中的应用
- 如何批量打印PDF文件
- linux系统使用命令一次显示日历,如何在Linux命令行上使用日历
- 解析CSS属性之pointer-events
- Proxifier代理指定程序到fiddler
- 关镇铨,有人为其洗白,我只想说我的亲身经历,最后悔的就是选择他们
- 数据加密标准DES详细过程总结、代码(自运行可实现)
- 【转载】CSS3之Clip(裁剪)拓展阅读
- 25张漂亮的微距摄影作品欣赏
- android ble sample,BleManager ble library 和周边 ble 连接 sample @codeKK Android开源站
- 规划IBM Spectrum Scale