入门Promise的用法
new Promise(function(resolve,reject){
resolve(); //数据处理完成
reject(); //数据处理出错
}).then(function A(){
//成功下一步
},function B(){
//出错做对应处理
});
Promise 三个状态;(每一个then都会返回新的一个Promise实例)
pending //待定 初始状态
fulfilled //实现 操作成功
rejected //否决 操作失败
-----------------------------------------------------------------
let a = 10;
let promise = new Promise(function(resolve,reject){
if(a==10){
resolve("成功")
}else{
reject("失败")
}
})
promise.then(res=>{
console.log(res)
},err=>{
console.log(err)
})
promise.catch(err=>{
console.log(err)
})
简写:
new Promise((resolve,reject)=>{
//做什么
}).then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
})
等价指令:
Promise.resolve("xxx")将现有的东西转成一个promise对象;resolve成功状态;
等价
new Promise((resolve)=>{
resolve("xxx")
})
Promise.reject("xxx")将现有的东西转成一个promise对象;reject失败状态;
等价
new Promise((resolve,reject)=>{
reject("xxx")
})
-----------------------------------------------------------------
Promise.all([x1,x2,x3])
例子:
let promise1 = Promise.resolve("aa")
let promise2 = Promise.resolve("bb")
let promise3 = Promise.resolve("cc")
Promise.all([promise1,promise2,promise3]).then(res=>{
console.log(res) //[aa,bb,cc]
let [res1,res2,res3] = res; //es6解构;
console.log(res1,res2,res3)
}).catch(err=>{
console.log(err)
})
all必须确保所有promise对象都是resolve状态;
let promise1 = Promise.reject("aa")
let promise2 = Promise.reject("bb")
let promise3 = Promise.resolve("cc")
Promise.race([promise1,promise2,promise3])只要有一个成功的就返回;//一般也不会用到
入门Promise的用法的更多相关文章
- 简单谈谈js中Promise的用法
首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ...
- Docker新手入门:基本用法
Docker新手入门:基本用法 1.Docker简介 1.1 第一本Docker书 工作中不断碰到Docker,今天终于算是正式开始学习了.在挑选系统学习Docker以及虚拟化技术的书籍时还碰到了不少 ...
- 整理一下Promise 的用法
Promise 的定义 Pormise是JS的异步编程的一种解决方案,在ES6将其写进了语言标准,提供了原生的Promise对象. Promise简单来理解就是一个容器,里面存放着某个未来才会结束的事 ...
- JavaScript异步与Promise基本用法(resolve与reject)
Promise解决的问题相信每个前端都遇到过这样一个问题,当一个异步任务的执行需要依赖另一个异步任务的结果时,我们一般会将两个异步任务嵌套起来,这种情况发生一两次还可以忍,但是发生很多次之后,就形成了 ...
- 理解并掌握Promise的用法
前沿: Promise在处理异步操作非常有用.项目中,与后端进行数据请求的时候经常要用到Promise.我们可以用promise + xhr进行ajax的封装.也可以使用基于promise封装的请求 ...
- [js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下pro ...
- ES6 入门Promise
Promise是一个对象用来传递异步操作的消息,有三种状态:Pending(进行中),Resolved(已完成又称Fulfilled)和Rejected(已失败). 特点:对象状态不受外界的影响.一旦 ...
- 入门Promise的正确姿势
Promise是异步编程的一种解决方案,从语法上说,Promise是一个对象,从它可以获取异步操作的消息. Promise的基本用法 Promise构造函数接受一个函数作为参数,该函数的两个参数分别是 ...
- NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法
个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...
随机推荐
- ajax验证用户名 当用户名框的数据改变时 执行ajax方法
ajax验证用户名 当用户名框的数据改变时 执行ajax方法 <html xmlns="http://www.w3.org/1999/xhtml" ><head ...
- vmware9虚拟机通过NAT上网方式设置
vmware虚机上网的网络连接方式有bridge.NAT.Host-only等,如果对这个不了解的可以学习这篇文章http://wangchunhai.blog.51cto.com/225186/38 ...
- hdu 5615 Jam's math problem(十字相乘判定)
d. Jam有道数学题想向你请教一下,他刚刚学会因式分解比如说,x^2+6x+5=(x+1)(x+5) 就好像形如 ax^2+bx+c => pqx^2+(qk+mp)x+km=(px+k)(q ...
- 2016-5-23 jsp
1.table的边框:rules这个参数,它有三个值(cols,rows,none),当rules=cols时,表格会隐藏横向的分隔线,也就是我们只能看到表格的列:当rules=rows时,就隐藏了纵 ...
- CodeForces161D: Distance in Tree(树分治)
A tree is a connected graph that doesn't contain any cycles. The distance between two vertices of a ...
- SPOJ:Bits. Exponents and Gcd(组合数+GCD)
Rastas's has been given a number n. Being weak at mathematics, she has to consider all the numbers f ...
- 修改cocos2dx 背景颜色
只需要在AppDelegate的设置FPS后面加入一行: glClearColor(1.0, 1.0, 1.0, 1.0); 同理如果要修改成其它颜色,只需修改里面的值即可( r, g, b, a);
- PYTHON路线图
路线图: 第一部分:Python语言基础 第二部分:数据库开发 第三部分:web前端 第四部分:Python web开发 第五部分:Python web项目 第六部分:Linux 第七部分:NoSQL ...
- 任务25:IHostEnvironment和 IApplicationLifetime介绍
任务25:IHostEnvironment和 IApplicationLifetime介绍 IHostingEnvironment这个里面有一些参数,比如我们当前应用程序的名称.目录的. await ...
- git 基本命令详细解释
创建: 2017-04-05 17:04:03 2017-04-24 更新: 2017-05-16 更新: 2017-06-27 完善git remote add 更新: 2017 ...