js中的callback与promise 区别

js中的callback与promise的区别实际就是宽度和深度的区别

说起回调(callback),那可以说是JS最基础的异步调用方式

 

Promise:是一个返回对象,异步编程的一种解决方案(es6)可取代callback,解决多层嵌套,分离异步获取数据与业务逻辑,

可以链式调用,每次返回的是一个Promise对象

 

 promise状态:

pending(进行中)--> resolve(成功) reject(失败)  ,状态一旦设定,不可改变

      pending-->resolve 进行中-->成功

      pending-->reject 进行中-->失败

 

Promise.all // 所有的完成

Promise.all([p1,p2,p3])

 

Promise.race

 

Promise.all([a, b ,c]).then(res=> {

// 全部分会成功时调用

// 只要有一个失败,就返回失败的reject,其余取消

// res是一个数组,按照顺序分别储存a, b, c的返回结果 })

Promise.race([a, b ,c]).then(res=> {

// 某一个成功即可调用

// 常用于异步操作与定时器配合,制作网络超时

// res是首个返回的结果

})

 

async await

async+await 要一起使用,async定义函数 await要在async函数内部使用,等待一个异步结束

 

async function start () {

const w1 = await delay('孙悟空')

console.log(w1)

const w2 = await delay('猪八戒')

console.log(w2)

console w3 = await delay('沙悟净')

console.log(w3)

}

 

 

参考链接: https://www.jianshu.com/p/13c1d4895711

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值