var p1 = Promise.resolve(2)
// console.log(p1)
// 成功状态
p1.then(res=>{
// console.log(res) // 2
})
var p2 = new Promise((resolve) => resolve(2))
p2.then( res =>{
// console.log(res) // 2
})
Promise.resolve(p2).then(res=> {
// console.log(res) // 2
})
console.log(Promise.reject(p2)) // 会在外层包一层rejeceted 状态
Promise.reject(p2).catch(err=>{
// console.log(err) // 但如果在用.catch捕捉一下就看到原来返回实例状态 同时浏览器报错
// err.catch(err=>{
// // console.log(err) // 没有反应
// })
})
// 失败状态
var p3 = new Promise((_,reject)=>reject('err6'))
// Promise.resolve(p3).then(res=>{
// // console.log(res) // Uncaught (in promise) err 返回的失败信息不能用.then进行捕捉
// })
// Promise.reject(p3).then(res=>{
// // console.log(res) // Uncaught (in promise) Promise {<rejected>: 'err'} 把值当成错误返回 用.then()能看到错误信息但是浏览器会报错
// })
// console.log(p3) // 拿到失败状态的promise实例
// console.log(Promise.resolve(p3)) // 拿到失败状态的promise实例
Promise.resolve(p3).catch(err=>{
// console.log(err) // err6
})
// console.log(Promise.reject(p3)) // 在失败状态的promise实例外面套了一层失败实例 同时浏览器报错
Promise.reject(p3).catch(err=>{
// console.log(err) // 拿到失败状态的promise实例
err.catch(err1 => {
// console.log(err1) // err6 需要再解构一层
})
})
// var p4 = Promise.reject(2)
// p4.then(err=>{
// console.log(err + 1) // 能看到错误信息,但是浏览器会报错,加法也不会执行
// })
// p4.catch(err=>{
// console.log(err) // 2 能拿到信息,浏览器也不报错
// })
// Promise.resolve().then(console.log) // undefined 什么都不传就取值会返回undefined
// var p6 = new Promise((resolve,reject)=>{
// resolve(2)
// reject('err')
// })
// console.log(p6)
// 总结:如果通过Promise.resolve()或Promise.reject()直接返回的确定值的实例进行取值,可以通过实例.then()或.catch()进行取值 它的实例是一个确定的状态实例
// 如果是通过 return new Promise((resolve,reject)=>resolve(),reject())这样 reject()在resolve()之前返回的话浏览器会报错 在resolve()之后返回会返回成功实例,然后在通过实例.then()或.catch()进行取值,虽然可以在接着Promise.resolve()或Promise.reject()但是完全没必要这样做
Promise.resolve(),Promise.reject()和.then().catch()取值问题
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 先来说一下Promise的三种状态 pending - 进行中fulfilled - 成功rejected - 失...
- 对promise这个概念之前已经有了一些浅显的理解,相关文章->戳这里,最近又有了一些新的理解。 .then()的...
- 先来一张热乎的示例图: step2:在DidMount里获取measure(为了减少渲染所以想在map后把数据统一...
- 子组件父组件执行顺序1、父组件的created --- 2、子组件的created --- 3、子组件的...