ES6:|ES6: Promise函数
- Promise的三种状态
Pending:进行中 | Resolved(已完成)|Rejected(已失败)
- 例子
var promise = new Promise(function(resolve,reject){
$.ajax({
success: function(data){
resolve(data)
},
error: function(err){
reject(err)
}
})})
使用
promise.then(function(data){
dosomething(data)
},function(err){
do something(err)
})
- 错误捕捉catch
可以用catch来捕捉错误。
- 封装一个promise方法
function getFn(url){
return new Promise(function(resolve,reject){
$.ajax({
url: url,
success: function(data){
resolve(data);
},
error: function(err){
reject(err)
}
})
})
}
//使用
getFn(url).then(function(data){
return getFn(url2)
}).then(function(url3){
})
- Promise.all()
promise.all接受一个由多个promise对象,包装成一个新的promise对象.
如下,三个promise对象必须都是resolve状态,这个新的promise对象才会是resolve状态
var p1 = new Promise(function(resolve){resolve(111)});
var p2 = new Promise(function(resolve){resolve(222)});
var p3 = new Promise(function(resolve){resolve(333)});
Promise.all([p1,p2,p3]).then(data)
//[111,222,333]
- Promise.resolve()
将现有对象转换成为一个promise对象
- Promise.reject
将现有对象转换成为一个promise对象
只不过对象状态为rejec
推荐阅读
- (二)ES6第一节变量(let|(二)ES6第一节变量(let,const)
- 六步搭建ES6语法环境
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- vue组件中为何data必须是一个函数()
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- 使用Promise对微信小程序wx.request请求方法进行封装