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语言第九节 函数指针
    C语言第七节 指针
    C语言第五节 函数
    C语言第六节 结构体
    C语言第四节 数组
    C语言第三节 循环结构
    C语言第二节 分支结构
    ARC、MRC混编
    Git 和 SVN之间的五个基本区别
    KZ--NSString、NSMutableString
  • 原文地址:https://www.cnblogs.com/lantuoxie/p/6920334.html
Copyright © 2011-2022 走看看