function add(num) {
return new Promise((resolve, reject) => {
console.log(num + ' + ' + num + ' = ' + (num + num))
if (num > 10) {
setTimeout(resolve(num + num), 200)
} else {
setTimeout(reject, 200, 'error')
}
})
}
function dec(num) {
return new Promise((resolve, reject) => {
console.log(num + ' - ' + 10 + ' = ' + (num - 10))
setTimeout(resolve, 150, num - 10)
})
}
function ride(num) {
return new Promise((resolve, reject) => {
console.log(num + ' * ' + num + ' = ' + (num * num))
setTimeout(resolve, 100, num * num)
})
}
function exc(num) {
return new Promise((resolve, reject) => {
console.log(num + ' / ' + 10 + ' = ' + (num / 10))
setTimeout(resolve, 50)
})
}
function start() {
var sum = new Promise((resolve, reject) => {
console.log('开始:')
resolve(11)
})
sum.then(add)
.then(dec)
.then(ride)
.then(exc)
.catch(err => {
console.log(err)
})
}
一。promise理论:promise分为三种状态:进行中、成功( resolve )、失败( reject )。
二。用途: ajax请求同步执行(只有前面执行完了,才会执行后面的,解决以前回调函数难以维护的问题。)等。或者是需要前面执行完之后才能执行后面的函数这一类的问题。而且只要前面有一处没有执行成功,后面就不再执行。
三。具体理论参考:阮一峰的es6标准入门。
Promise链式调用解析
6077

被折叠的 条评论
为什么被折叠?



