码迷,mamicode.com
首页 > 其他好文 > 详细

promise使用方法

时间:2018-02-03 00:37:37      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:blog   promise   err   error   turn   使用方法   console   失败   一个   

代码报错会走向失败时的回调

 

1 let p = new Promise((resolve, reject) => {
2   throw new Error("我错了"); //会失败
3 })
4 
5 p.then((data) => {
6   console.log(data)
7 }, (err) => {
8   console.log(err) // 执行这个方法
9 })

 

执行reject会走向失败时的回调

 

let p = new Promise((resolve, reject) => {
  reject("我错了") //会失败
})

p.then((data) => {
  console.log(data)
}, (err) => {
  console.log(err) // 执行这个方法
})

 

执行resolve会执行成功时的回调

 

let p = new Promise((resolve, reject) => {
  resolve("我对了") // 会成功
})

p.then((data) => {
  console.log(data) // 执行此方法
}, (err) => {
  console.log(err) 
})

 

不执行的情况

 

let p = new Promise((resolve, reject) => {
  console.log("不知道");
})

p.then((data) => {
  console.log(data) // 不执行
}, (err) => {
  console.log(err)  // 不执行
})

 

链式调用可以返回普通值

 

let p = new Promise((resolve, reject) => {
  resolve("执行1")
})

p.then((data) => {
  return "执行2"
}).then((data) => {
  return "执行3"
}).then((data) => {
  console.log(data) //执行3
})

 

链式调用可以返回promise

 

let p = new Promise((resolve, reject) => {
  resolve("执行1")
})

p.then((data) => {
  return new Promise((resolve, rejext) => {resolve("执行2")})
}).then((data) => {
  return new Promise((resolve, rejext) => {resolve("执行3")})
}).then((data) => {
  console.log(data) //执行3
})

 

链式调用也可以不返回任何值直接到达下一步

 

let p = new Promise((resolve, reject) => {
  resolve("执行1")
})

p.then((data) => {
  // 跳过我吧!
}).then((data) => {
  return new Promise((resolve, rejext) => {resolve("执行3")})
}).then((data) => {
  console.log(data) //执行3
})

 

手写一个promise:https://github.com/wuxianqiang/promise

promise使用方法

标签:blog   promise   err   error   turn   使用方法   console   失败   一个   

原文地址:https://www.cnblogs.com/wuxianqiang/p/8407419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!