Links:

JavaScript Promise:简介

1.一章一章顺序地下载显示下载显示
使用Array.reduce()和Promise.resolve()将各章的下载及显示作为整体串联起来。
[下载][显示]串联再串联。
promise.resolve().[then().then()].[then().then()].... => 串联
2.各章节分别下载完成后,才再一章一章显示
使用Array.map()将各章的下载并行起来,用Promise.all()将结果合并一处,然后再一章一章地循环显示。[下载]先并联再与[显示]串联
Promise.all() => 并联
3.各章节分别下载,下载的同时按章节顺序连续性地显示。若排到的要显示的章节未下载完才等待。
使用Array.map()将各章的下载并行起来,然后用Promise.resolve()将各章节的[显示]串联起来
story.chapterUrls.map(getJSON) => 并行下载
promise.resolve().[then()].[then()].[then()]

并行是通过数组的循环执行getJSON来顺序开始的。

串行是通过promise的then来实现的,只有前一步then完成了,才做下一步then。

JavaScript Promise异步实现章节的下载显示的更多相关文章

  1. JavaScript及其异步实现续:Promise让一切更简单

    在写这篇文章之前,我参考了以下文章.所以我文中的例子都是精准的,而且有循可依.下面抛出例子的链接: Understanding JQuery.Deferred and Promise Deferred ...

  2. JavaScript编程异步助手:Promise

    异步模式在Web编程中变得越来越重要,对于Web主流语言JavaScript来说,这种模式实现起来不是很利索,为此,许多JavaScript库(比如 jQuery和Dojo.AngularJS)添加了 ...

  3. JavaScript Promise:去而复返

    原文:http://www.html5rocks.com/en/tutorials/es6/promises/ 作者:Jake Archibald 翻译:Amio 女士们先生们,请准备好迎接 Web ...

  4. [Javascript] Promise

    Promise 代表着一个异步操作,这个异步操作现在尚未完成,但在将来某刻会被完成. Promise 有三种状态 pending : 初始的状态,尚未知道结果 fulfilled : 代表操作成功 r ...

  5. 利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载

    利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载 1.页面显示代码 <%@ page language="java" import="java ...

  6. day82:luffy:课程详情页面显示&章节和课时显示&视频播放组件&CKEditor富文本编辑器

    目录 1.初始课程详情页面 2.视频播放组件 3.课程详情页面后端接口实现 4.课程详情页面-前端 5.CKEditor富文本编辑器 6.课程章节和课时显示-后端接口 7.课程章节和课时显示-前端 1 ...

  7. PHP JS JQ 异步上传并立即显示图片

    提交页面: <! DOCTYPE html> < html> < head> < meta charset ="GB2312" > ...

  8. Javascript Promise 学习笔记

    1.     定义:Promise是抽象异步处理对象以及对其进行各种操作的组件,它把异步处理对象和异步处理规则采用统一的接口进行规范化. 2.     ES6 Promises 标准中定义的API: ...

  9. 【译】JavaScript Promise API

    原文地址:JavaScript Promise API 在 JavaScript 中,同步的代码更容易书写和 debug,但是有时候出于性能考虑,我们会写一些异步的代码(代替同步代码).思考这样一个场 ...

随机推荐

  1. 时间序列 R 读书笔记 04 Forecasting: principles and practice

    本章開始学习<Forecasting: principles and practice> 1 getting started 1.1 事件的可预言性 一个时间能不能被预言主要取决于以下三点 ...

  2. 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展添加检查订单功能,以便记录并检測输入的參数

    这一章节我们讨论一下扩展添加检查订单功能,以便记录并检測输入的參数. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03 ...

  3. php 结合md5的加密,解密方法

    php 结合md5的加密,解密方法 张映 发表于 2012-06-28 分类目录: php 标签:md5, php 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5 ...

  4. android-studio于java相关

      1.安装和配置 在安装完成android-studio后,启动,配置project structure.包括SDK.JDK等,此开发工具需要自行下好,软件无自带. 配置完成后,通过:File--& ...

  5. c#的bug?

    在群里面有人提出了这么一个诡异的问题,请问15.5%3.1=? 然后,我就去看了看,因为他们说结果是3.1!!!

  6. zookeeper 批量启动的脚本

    #!/bin/shecho "start zkServer"for i in  2 3 4dossh mini$i "source /etc/profile;/usr/l ...

  7. Web Service安全问题,不暴露接口的一种办法

    我们在做服务层时,经常会用到Web Service,但是这有个问题,容易被人恶意调用接口. 一种解决办法是自己写个验证SoapHeader,屏蔽接口在网页端调用,但使用这个方法别人还是能看到你的接口有 ...

  8. Spring 核心组件工作原理简析

    Spring Framework 的核心组件有三个: Spring Core,Spring Context 和 Spring Beans,它们奠定了 Spring 的基础并撑起了 Spring 的框架 ...

  9. jQuery 和其他 JavaScript 框架

    正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写. 如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办? 其他一些 JavaScript 框架包括:MooTo ...

  10. 机器学习算法-Adaboost

    本章内容 组合类似的分类器来提高分类性能 应用AdaBoost算法 处理非均衡分类问题 主题:利用AdaBoost元算法提高分类性能 1.基于数据集多重抽样的分类器 - AdaBoost 长处 泛化错 ...