新建一个promise很简单,只需要new一个promise对象即可。所以promise本质上就是一个函数,它接受一个函数作为参数,并且会返回promise对象,这就给链式调用提供了基础。
function runAsync1(){
return new Promise((resolve,reject) => {
setTimeout(function(){
console.log(111)
if(0){
resolve("runAsync1_resolve") //异步操作成功
}else{
reject("runAsync1_reject") //异步操作失败
}
},1000)
})
}
function runAsync2(){
return new Promise((resolve,reject) => {
setTimeout(function(){
console.log(222)
resolve("runAsync2")
},1000)
})
}
runAsync1().then(function(resolved){
// 如果调用了resolve方法,执行此函数
console.log(resolved)
return runAsync2()
},function(rejected){
// 如果调用了reject方法,执行此函数
console.log(rejected)
}).then(function(resolved){
console.log(resolved)
})
处理异常的第二个方法可以用catch代替
runAsync1().then(function(resolved){
console.log(resolved)
return runAsync2()
}).catch(function(error) {
console.log(error)
//处理前面任一个then函数抛出的错误
});
Promise.all方法
(略)
https://www.cnblogs.com/whybxy/p/7645578.html
https://mengera88.github.io/2017/05/15/promise学习笔记/ (静静)