Promise与Async Await详解

不管是使用还是面试,Promise都是一整个重点,下面来总结下Promise和Async Await。
先看下常见的异步操作:
事件监听

document.getElementById('#start').addEventListener('click', start, false);
function start() {
   
  // 响应事件,进行相应的操作
}
// jquery on 监听
$('#start').on('click', start)

回调

// 比较常见的有ajax
$.ajax('http://www.wyunfei.com/', {
   
 success (res) {
   
   // 这里可以监听res返回的数据做回调逻辑的处理
 }
})
// 或者在页面加载完毕后回调
$(function() {
   
 // 页面结构加载完成,做回调逻辑处理
})

(1)Promise
Promise主要用于异步任务,将异步的任务队列化,他主要解决了异步操作不小心就会进入回调地狱模式中,他将回调地狱的嵌套模式改为了链式调用模式,利于代码可读性和维护性。
promise代码:

new Promise(
  function (resolve, reject) {
   
    // 一段耗时的异步操作
    resolve('成功') // 数据处理完成
    // reject('失败') // 数据处理出错
  }
).then(
  (res) => {
   console.log(res)},  // 成功
  (err) => {
   console.log(err)} // 失败
)

(1)resolve作用是将promise对象状态从未完成变为成功,异步操作成功时调用,并将异步操作的结果作为参数传出去。
reject的作用是,将promise的状态从未完成变为失败,在异步操作失败时调用,并将异步操作报的错作为参数传递出去
(2)promise有三个状态:pending初始状态,fulfilled操作成功,rejected操作失败状态
(3)promise的状态一经改变,只有两种可能:从pending变为fulfilled,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值