应用 ES6 的 内置对象 Promise, 让异步函数 按顺序执行的例子 如下:

上边 是四个用Promise 处理过的 异步执行的函数: fn1、fn2、fn3、fn4

下面,让其按顺序执行 如下:

测试代码:

const fn1 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(111)
resolve()
}, 100);
})
} const fn2 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(222)
resolve()
}, 300);
})
} const fn3 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(333)
resolve()
}, 200);
})
} const fn4 = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(444)
resolve()
}, 50);
})
} // 顺序执行函数
fn1()
.then(fn2)
.then(fn3)
.then(fn4)

ES6 Promise 让异步函数顺序执行的更多相关文章

  1. Promise 异步函数顺序执行

    可以满足需求,且使用方法和Promise.all统一 var a = function() { return new Promise(function(resolve, reject) { setTi ...

  2. Node.js用ES6原生Promise对异步函数进行封装

    Promise的概念 Promise 对象用于异步(asynchronous)计算..一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise的几种状态: pending:初 ...

  3. async异步函数的执行顺序

    1 async function async1(){ 2 console.log('async1 start') //2 3 await async2() 4 //await async2()后面的内 ...

  4. 用Promise处理异步函数

    处理函数之间的异步问题,使其同步进行的其中一种方法,就是使用Promise.Promise在ES6中被提出. 使用示例如下: 假如有三个函数,要求按getone.gettwo.getthree的顺序执 ...

  5. ES6(Promise)等一个函数执行完后再执行另一个函数

    function text1(){ return new Promise((resolve, reject) => { setTimeout(function () { resolve(cons ...

  6. resolve和reject不会终结Promise的参数函数的执行

  7. js多个异步请求,按顺序执行next

    在js里面,偶尔会遇见需要多个异步按照顺序执行请求,又不想多层嵌套,,这里和promise.all的区别在于,promise或者Jquery里面的$.when 是同时发送多个请求,一起返回,发出去的顺 ...

  8. 简述异步编程&Promise&异步函数

    前言:文章由本人在学习之余总结巩固思路,不足之前还请指出. 一.异步编程 首先我们先简单来回顾一下同步API和异步API的概念 1.同步API:只有当前的API执行完成之前,才会执行下一个API 例: ...

  9. 《深入理解ES6》笔记—— Promise与异步编程(11)

    为什么要异步编程 我们在写前端代码时,经常会对dom做事件处理操作,比如点击.激活焦点.失去焦点等:再比如我们用ajax请求数据,使用回调函数获取返回值.这些都属于异步编程. 也许你已经大概知道Jav ...

随机推荐

  1. 【机器学习具体解释】KNN分类的概念、误差率及其问题

    转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50923056 勿在浮沙筑高台 KNN概念 KNN(K-Nearest Neig ...

  2. redo

    --创建redosize的视图create or replace view redo_size as select value from v$mystat, v$statname where v$my ...

  3. Docker入门与应用系列(六)Docker私有与公共镜像仓库

    1.搭建私有镜像仓库 Docker Hub作为Docker默认官方公共镜像:如果想搭建自己的私有镜像仓库,官方提供registry镜像,使搭建私有仓库非常简单 1.1下载registry镜像并启动 d ...

  4. 《ASP.NET1200例》C#在网页上编写动态时钟

    包含Timer类的命名空间有3个 Timer Class (System.Threading)‎ Timer Class (System.Windows.Forms)‎ 一般用于窗体程序 Timer  ...

  5. 网络虚拟化之FlowVisor:网络虚拟层(上)

    概念解释:切片:虚拟网络的一个实例 一. 网络虚拟化(虚拟网络) 人类社会的发展在很大方面得益于自然界,飞机受益于鸟,雷达受益于蝙蝠等等,所以专门有个学科为仿生学就是研究和模仿生物的特殊本质,利用生物 ...

  6. AngularJS 讲解,二 模块

    AngularJS允许我们使用angular.module()方法来声明模块,这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,也就是可以被注入到模块中的对象列表. angular.mo ...

  7. 转载别人的DLL DEll研究

    昨日,编了个DLL和EXE来进行了下测试,exe通过lib静态联编dll,来调用它的导出类,当改变DLL中导出类的结构(eg.成员变量的顺序等),从新发布DLL而不从新联结编译EXE,就会造成错误的执 ...

  8. float元素一定要闭合

    float:left; float:right; 一定要两个元素一起放float

  9. mybatis循环map

    一.循环key <foreach collection="map.keys" item="key" separator="and"&g ...

  10. Too Many Open Files的错误

    百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#Too.20Many.20Open.20Files.E7.9A ...