JavaScript Promise异步实现章节的下载显示

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。

时间: 2024-07-30 15:33:28

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

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

在写这篇文章之前,我参考了以下文章.所以我文中的例子都是精准的,而且有循可依.下面抛出例子的链接: Understanding JQuery.Deferred and PromiseDeferred and promise in jQuery Edit:在翻网站的时候,看到腾讯技术团队居然也刚写了一篇Promise的文章,加下链接,以作备忘. JavaScript Promise启示录 Deferred在JQuery1.5的版本被引进,这项功能的引进使JQuery变得更加强大,良好的异步支持,让

[Javascript] Promise

Promise 代表着一个异步操作,这个异步操作现在尚未完成,但在将来某刻会被完成. Promise 有三种状态 pending : 初始的状态,尚未知道结果 fulfilled : 代表操作成功 rejected : 代表操作失败 如果 Promise 操作 fulfilled 或者 rejected ,并且对应的处理函数被声明了,则该处理函数被调用. Promise vs 事件监听器(event listener) 事件监听器善于处理同一对象上重复发生的事情,例如按键.点击鼠标等.对于这些事

JavaScript及其异步实现

由于javascript本身是单线程模型,这里主要通过Callbacks,Listeners,Control Flow Libraries ,Promises四种方式来实现异步操作. Reference:            1.JavaScript异步编程的四种方法(转)           2.JavaScript Promises 一.Callbacks(函数回调) 让我们首先以函数回调方式来开头,这种方式也是最基本,同时也是大家都知道的异步实现方法. 现在我们有两个函数:Functio

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

http://my.oschina.net/zerodeng/blog/313773 提交页面: <! DOCTYPE html> < html> < head> < meta charset ="GB2312" > < title> Insert title here </title > < script type ="text/javascript" src= "jquery

JavaScript Promise启示录

本篇,主要普及promise的用法. 一直以来,JavaScript处理异步都是以callback的方式,在前端开发领域callback机制几乎深入人心.在设计API的时候,不管是浏览器厂商还是SDK开发商亦或是各种类库的作者,基本上都已经遵循着callback的套路. 近几年随着JavaScript开发模式的逐渐成熟,CommonJS规范顺势而生,其中就包括提出了Promise规范,Promise完全改变了js异步编程的写法,让异步编程变得十分的易于理解. 在callback的模型里边,我们假

浅谈javascript单体【读javascript设计模式第五章节单体有感】

单体,整个运行环境就独有一份,最简单的一种单体就是一个把所有属性和方法都集中在一起的对象,区别于一般的字面量对象,一般字面量对象是对一个物体的描述,集合该物体所具有的一些属性和方法,而单体则包含更多的些逻辑在里面,单体的好处有,划分命名空间,如果用来作为网页包装器,可以使得页面所有变量都封装在一个对象里,大幅度减小网页里的全局变量, 代码如: common.js (function(wz){ $.extend({ init:function(){ var self = this; this.bi

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

提交页面: <! DOCTYPE html> < html> < head> < meta charset ="GB2312" > < title> Insert title here </title > < script type ="text/javascript" src= "jquery.js"></ script > < script 

Javascript Promise 学习

Promise 就是处理异步的一个规范方法 a();b();alert("a");如果a() 里面有一个ajax 或者settimeout 那么alert("a") 会先跑这就是异步了.从前我们用一堆callBack函数来解决问题,但是这样写不好看.promise 的写法美丽多了依据上面的例子a().then(b).then(function(){alert("");})这样它会先跑完 a -> b - > alert("&

javaScript Promise 入门

Promise是JavaScript的异步编程模式,为繁重的异步回调带来了福音. 一直以来,JavaScript处理异步都是以callback的方式,假设需要进行一个异步队列,执行起来如下: animate (ball1, 100, function () { animate (ball2, 200, function () { animate (ball3, 300, function () { animate (ball3, 150, function () { animate (ball2