Promise的方法:then和catch
then的介绍
1.是promise状态改变时的回调函数,then有2个回调函数
then方法分别指定了Resolved状态和Rejected状态的回调函数
回调函数的参数是上一个promise的返回值
new Promise(function(resolve, reject) {
return resolve('ok')
}).then(function(value) {
//成功: 第一个回调函数
console.log('接受到的内容:' , value)
return value
}, function(error) {
//失败: 第二个回调函数
console.log('出错了:', error)
})
2.then方法返回的是一个新的Promise,所以then可以无限次调用
getApi('post/1.json').then(function(json) {
return json
}).then(function(post) {
//...
}).then(function(post) {
//...
})
2.catch的介绍
Promise.prototype.catch方法是.then(null,rejection)的别名,用于指定发生错误时的回调函数。
getApi('post/1.json').then(function(json) {
return json
}).catch(function(error) {
// 处理前一个回调函数运行时发生的错误
console.log('错误:',error)
})
作用一样,以下是then的写法和catch的写法
new Promise(function(resolve, reject) {
return resolve('ok')
}).then((val) => console.log('fulfilled:', val))
.catch((error) => console.log('rejected:', error))
new Promise(function(resolve, reject) {
return resolve('ok')
}).then((val) => console.log('fulfilled:', val))
.then(null,(error) => console.log('rejected:', error))
2.1catch后面可以加then,如果没有报错则会跳过catch方法。