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);
      }
    }
  • 相关阅读:
    RabbitMQ 入门指南(Java)
    RabbitMQ 四种Exchange
    使用Spring AMQP开发消费者应用
    RestTemplate源码浅析
    Spring Boot整合Rabbitmq
    RestTemplate实践(及遇到的问题)
    binlog之三:binlog开启、查看
    微服务架构的六种模式
    SpringBoot自动化配置之四:@Conditional注解详解
    微服务理论之一:应用架构演进史
  • 原文地址:https://www.cnblogs.com/lantuoxie/p/6920334.html
Copyright © 2011-2022 走看看