参考 https://www.jianshu.com/p/43f948051d65

// Promise里面传入一个函数类型的参数,这个函数类型的参数接收两个参数resolve reject
var p=new Promise(function(resolve,reject){
// 异步操作
setTimeout(function(){
console.log('icessun'); // 两秒之后打印出icessun
resolve('icessun2'); // resolve是成功后的回调函数 里面的icessun2是传入的参数
},2000)
});
// 那么p是一个实例对象,可以使用then方法(Promise原型上面的方法)
p.then(function(){
console.log(arguments); // 会打印出一个类数组 ['icessun2'] })
p.then(function(data){
console.log(data); // 会打印出icessun2 data接收了resolve里面的参数
}) 作者:icessun
链接:https://www.jianshu.com/p/43f948051d65
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
对于上面这段代码,首先new一个实例对象赋值给pPromise的构造函数接受一个参数,是函数;并且传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数;然后里面设置一个定时器setTimeout,开启一个异步操作,两秒后输出icessun,并且调用resolve方法

链式操作

function runAsync1(){
var p=new Promise(function(resolve,reject){
setTimeout(function(){
console.log('执行完成1')
resolve('icessun1');
},2000);
}); return p; // 返回p实例对象
}
function runAsync2(){
var p=new Promise(function(resolve,reject){
setTimeout(function(){
console.log('执行完成2')
resolve('icessun2');
},2000);
}); return p; // 返回p实例对象
}
function runAsync3(){
var p=new Promise(function(resolve,reject){
setTimeout(function(){
console.log('执行完成3')
resolve('icessun3');
},2000);
}); return p; // 返回p实例对象
} // 正确的打开Promise的方法
runAsync1()
.then(function(data){
console.log(data);
return runAsync2();
})
.then(function(data){
console.log(data);
return runAsync3();
})
.then(function(data){
console.log(data);
}) 作者:icessun
链接:https://www.jianshu.com/p/43f948051d65
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

这样能够按照顺序,每隔两秒输出每个异步回调中的内容,运行结果:

封装axios

https://www.cnblogs.com/ldlx-mars/p/7908950.html

Promise 学习的更多相关文章

  1. Javascript - Promise学习笔记

    最近工作轻松了点,想起了以前总是看到的一个单词promise,于是耐心下来学习了一下.   一:Promise是什么?为什么会有这个东西? 首先说明,Promise是为了解决javascript异步编 ...

  2. Promise 学习笔记 - 时间支配者

    本文同步自我的个人博客:http://www.52cik.com/2015/11/08/promise.html JavaScript 的 promises 事实标准称为 Promises/A+.ES ...

  3. Javascript Promise 学习 (中)

    时隔多日,对promise有了多一点点的了解. 最近用angularjs 做开发,所以研究了一下它的 $q 功能不算很强大,算是简化版的 Q.js 参考了一下源码,不过我的等级还差很多... 作为学习 ...

  4. Javascript Promise 学习(上)

    Promise 就是处理异步的一个规范方法 a();b();alert("a");如果a() 里面有一个ajax 或者settimeout 那么alert("a" ...

  5. JavaScript之Promise学习笔记

    一直想知道Promise到底是怎么实现的,网上一搜几十篇文章,看的一脸蒙蔽.最后算是找到几个讲的真心很详细明了的.看了一份源码看了很久很久……最后找大佬问了几处看不懂的地方,大佬只看了十几分钟就看懂了 ...

  6. Promise学习探究

    学习熟知吧,原理还是继续吧 例子1: var isGeted; function getRet(){ return new Promise(function(resolve, reject) { // ...

  7. Promise 学习心得

    当了这么久码农到今天没事才开始去深究 Promise 这个对象 什么是 Promise, Promise 有什么用? 在写代码的时候多多少少都有遇见过地狱式的回调 代码看起来没问题就是有点乱,Prom ...

  8. js的Promise学习笔记(1)

    1: 何为Promise Promise是抽象异步处理对象以及对其对象进行各种操作的组件,是基于并列/并行处理设计的一种编程语言. 说到基于JavaScript的异步处理,大多数都会想到利用回调函数. ...

  9. Promise学习

    转自:http://www.cnblogs.com/lvdabao/p/es6-promise-1.html 去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被 ...

  10. Promise 学习笔记

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息.Promise提供统一的API, ...

随机推荐

  1. Android仿淘宝头条滚动广告条

    之前我使用TextView+Handler+动画,实现了一个简单的仿淘宝广告条的滚动,https://download.csdn.net/download/qq_35605213/9660825: 无 ...

  2. 字符串切分 String.Split 和 Regex.Split(小技巧)

    当切割字符串的是单个字符时可使用String.Split string strSample="ProductID:20150215,Categroy:Food,Price:15.00&quo ...

  3. linux:apt-get 如何安装,查询,解除依赖包

    apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install package ...

  4. python requests 发起http POST 请求

    python requests 发起http POST 请求,带参数,带请求头: #!/usr/bin/env python # -*- coding: utf-8 -*- import reques ...

  5. tomcat和eclipse-wtp的一些配置

    TOMCAT配置UTF-8 server.xml配置文件: <Connector port="8080" protocol="HTTP/1.1" conn ...

  6. 制作本地yum源

    镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的 ...

  7. git push异常

    git push异常:! [remote rejected] HEAD -> refs/for/master ([3149246] missing Change-Id in commit mes ...

  8. spring -mvc service层调用工具类配置

    在service层时调用工具类时服务返回工具类对象为空 在此工具类上加上@Component注解就可以了 @Component:把普通pojo实例化到spring容器中,相当于配置文件中的 <b ...

  9. 15.unbuntu下安装vmware-tools

    链接地址:https://blog.csdn.net/yuanxiang01/article/details/78787823

  10. oracle数据库创建并导入dmp文件

    导出:exp userid=xcgwjxuser/xcgwjxuser@orcl file=D:\xcgwjx2014.dmp 导入:imp userid=xcgwjxuser/xcgwjxuser@ ...