zoukankan      html  css  js  c++  java
  • ECMAScript5 [].reduce()

    ECMAScript 5 的2个归并数组的方法,reduce() reduceRight()

    两个方法都会迭代数组的所有项,然后构建一个最终返回的值。

    两个参数:   1、函数,一个在每一项上调用的函数和             2、(可选的)作为归并基础的初始值。

    第一个函数handlerReduce()接受4个参数

    1、前一个值 2、当前值 3、项的索引 4、数组对象

    这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。

    利用reduce生成异步执行链function logInOrder(urls) {

    // 远程读取所有URL textPromises保存了所有
      const textPromises = urls.map(url => {
        return fetch(url).then(response => response.text());
      });
    
       // 按次序输出 默认值为Promise.resolve()返回一个空的Promise对象 即第一次时的chain就是空的Promise对象
    textPromises.reduce((chain, textPromise) => { return chain.then(() => textPromise) .then(text => console.log(text)); }, Promise.resolve()); }

    空的Promise对象的then()函数执行下一个Promise对象的then(),然后then()再执行下一个Promise对象的then(),直到最后一个then()函数执行Promise.response或Promise.reject

    async函数实现异步链

    async function logInOrder(urls) {
      // 并发读取远程URL
      const textPromises = urls.map(async url => {
        const response = await fetch(url);
        return response.text();
      });
    
      // 按次序输出
      for (const textPromise of textPromises) {
        console.log(await textPromise);
      }
    }
  • 相关阅读:
    常见算法:C语言求最小公倍数和最大公约数三种算法
    java数据结构
    创建与删除索引
    Delphi 2007体验!
    wxWindows
    Android中WebView的相关使用
    IAR FOR ARM 各版本号,须要的大家能够收藏了
    [AngularJS] $interval
    [ES6] 10. Array Comprehensions
    [ES6] 09. Destructuring Assignment -- 2
  • 原文地址:https://www.cnblogs.com/lantuoxie/p/6920334.html
Copyright © 2011-2022 走看看