美文网首页
Javascript 在循环中使用Promise对象

Javascript 在循环中使用Promise对象

作者: bigzhangx | 来源:发表于2019-10-02 23:08 被阅读0次

先看一个生成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对象

    先看一个生成Promise对象的方法 目标是生成10个Promise对象并依次输出Promise的结果。 首先看这...

  • promise

    promise是什么 promise是一个对象“承诺将来会执行”的对象在JavaScript中称为Promise对...

  • Javascript学习笔记-Promise

    1. Promise简介 Promise是ES6新引入的对象,是新增加的异步处理手段。在Javascript 中在...

  • 《JS原理、方法与实践》- ES6新增对象(下篇)

    异步处理(Promise) ES2015中新增的Promise对象专门用于处理异步。Promise对象使用then...

  • ES6 之 Promise

    Promise是JavaScript异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步...

  • Promise

    前言 古人云:“君子一诺千金”,这种“承诺将来会执行”的对象在 JavaScript 中称为 Promise 对象...

  • JavaScript 中的 Promise 对象

    本文主要参考引用阮一峰的《ECMAScript 6 入门》以及廖雪峰的《JavaScript教程》,主要总结了 P...

  • JaveScript中的Promise对象

    前言 本文旨在简单讲解一下javascript中的Promise对象的概念,特性与简单的使用方法。并在文末会附上一...

  • 体验 Promise 优美的链式写法

    古人云:“君子一诺千金”,这种“承诺将来会执行”的对象在 JavaScript 中称为 Promise 对象。Pr...

  • JavaScript 类

    JavaScript 是面向对象的语言,但 JavaScript 不使用类。在 JavaScript 中,不会创建...

网友评论

      本文标题:Javascript 在循环中使用Promise对象

      本文链接:https://www.haomeiwen.com/subject/kwdjpctx.html