Promise 异步函数顺序执行
可以满足需求,且使用方法和Promise.all统一
var a = function() {
    return new Promise(function(resolve, reject) {
        setTimeout(function() {
            console.log('a')
            resolve('a')
        }, 1000)
    })
}
var b = function(data) {
    return new Promise(function(resolve, reject) {
        console.log('b')
        resolve(data +'b')
    })
}
var c = function(data) {
    return new Promise(function(resolve, reject) {
        setTimeout(function() {
            console.log('c')
            resolve(data +'c')
        }, 500)
    })
}
// 组织函数队列
function reduce(arr) {
    var sequence = Promise.resolve()
    arr.forEach(function(item) {
        sequence = sequence.then(item)
    })
    return sequence
}
// 顺序执行函数队列
reduce([a, b, c])
.then(function(data) {
    console.log(data)// abc
})
.catch(function(e) {
    console.log(e)
})
Promise 异步函数顺序执行的更多相关文章
- ES6 Promise 让异步函数顺序执行
		应用 ES6 的 内置对象 Promise, 让异步函数 按顺序执行的例子 如下: 上边 是四个用Promise 处理过的 异步执行的函数: fn1.fn2.fn3.fn4 下面,让其按顺序执行 如下 ... 
- 简述异步编程&Promise&异步函数
		前言:文章由本人在学习之余总结巩固思路,不足之前还请指出. 一.异步编程 首先我们先简单来回顾一下同步API和异步API的概念 1.同步API:只有当前的API执行完成之前,才会执行下一个API 例: ... 
- Promise 异步函数的加上外壳终止Promise
		//promise异步函数的请求终止 export default function markCancleble(promise){ let hasCanceled_ = false ; const ... 
- async异步函数的执行顺序
		1 async function async1(){ 2 console.log('async1 start') //2 3 await async2() 4 //await async2()后面的内 ... 
- Jquery AJAX如何使用Promise/Deferred实现顺序执行?
		有的时候有我有N个AJAX请求,第下个请求可能要依赖上个请求的返回值, 可以用 $.ajax("test1.php").then(function(data) { // data ... 
- 更优雅的方式: JavaScript 中顺序执行异步函数
		火于异步 1995年,当时最流行的浏览器--网景中开始运行 JavaScript (最初称为 LiveScript). 1996年,微软发布了 JScript 兼容 JavaScript.随着网景.微 ... 
- js多个异步请求,按顺序执行next
		在js里面,偶尔会遇见需要多个异步按照顺序执行请求,又不想多层嵌套,,这里和promise.all的区别在于,promise或者Jquery里面的$.when 是同时发送多个请求,一起返回,发出去的顺 ... 
- promise、async、await、settimeout异步原理与执行顺序
		一道经典的前端笔试题,你能一眼写出他们的执行结果吗? async function async1() { console.log("async1 start"); await as ... 
- reduce + Promise 顺序执行代码
		本文地址: http://www.cnblogs.com/jasonxuli/p/4398742.html 下午的太阳晒得昏昏沉沉,和上周五一样迷糊,看一段代码半天没看明白,刚才不知不觉眯了几分钟,醒 ... 
随机推荐
- 3.Monkey Script小案例
			1.实现打开搜狗搜索APP,在搜索框输入内容,点击回车,重复2次运行 2.实现代码如下所示: type=user count=10 speed=1.0 start data >> Laun ... 
- [置顶]
        linux  getline()函数
			getline()函数是什么?百度百科这样解释: getline不是C库函数,而是C++库函数.它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束.1) ... 
- rails自定义出错页面
			一.出错类型 Exception ActionController::UnknownController, ActiveRecord::RecordNotFound ActionController: ... 
- JCTF 2014(Reverse)
			小菜一碟: 点击下载附件 下载的附件没有后缀,用c32打开看看 是apk文件,用Smali2JavaUI打开 程序把输入框的字符串反转,然后进行MD5加密,最后进行base64编码,与NzU2ZDJm ... 
- CentOS6.5 增加交换空间
			在CentOS 6.5安装Oracle 11g的时候,提示交换空间不足,百度来下,找到来增加交换空间的方法,特此记录一下 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap ... 
- 数据库理论-范式(1NF、2NF、3NF)
			范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”. 第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项.(每个属性不可分割)第二范式(2NF)要求数据 ... 
- mssql error 26
			右击数据库选择“方面”,将“RemoteAccessEnabled”属性设为“True”,点“确定” 
- 图片缓存核心类LruCache
			该类类似一个缓存池,具体可参考 http://www.fengfly.com/plus/view-214546-2.html 
- php中使用array_reduce给数组降维
			PHP里面最强大的工具,就是数组,它融合了多种数据结构的特点,数组.队列.栈.哈希表等等,而且容器可以兼容各种类型,任意嵌套,简直无所不能.围绕着数组,PHP原生支持了一些列的函数,使得数组在实际编程 ... 
- 使用myeclipse自动导入hibernate3的jar包,如何关联hibernate源码的解决办法
			1.在网上找了好久,今天终于解决了,如果你的myeclipse自动生成的添加hibernate3jar包时,依靠通常的方法是无法关联其相应版本的源代码的,就是你在编写代码是,按住ctrl + hibe ... 
