es6 新增的一个异步操作的方法 promise
简单的了解一下
promise ->
-成功
-失败
->决定去做这个事
->我放弃做这个事
两个参数 决定 = resolve 放弃=reject
new promise(function(resolve,reject){
resolve('abc');
}).then(function(v){
alert(v) // abc
})
new promise(function(resolve,reject){
reject('abc');
}).catch(function(v){
alert(v) // abc
})
当然 如果 是reject 还有另一种写法
new promise(function(resolve,reject){
reject('abc');
}).then(function(v){
alert(v)
},function(){
alert(1)
})
他这里会直接输出 1 跳过.then()
当然如果有catch()会直接执行catch()
promise 还有另一种写法
Promise.resolve(1).then(function(m){
console.log(m) //1
})
Promise.reject(1).then(function(){
console.log('13')
},function(m){
console.log(m) //1
})
race 先最快输出谁
Promise.race([new Promise(function(resolve,reject){
setTimeout(resolve,300,'one');
}),new Promise(function(resolve,reject){
setTimeout(resolve,500,'two');
})]).then(function(l){
console.log(i) // one
})
all
Promise.all([1,2,3]).then(function(m){
console.log(m)
})