成人午夜一区二区_操碰在线视频_国产精品麻豆一区二区三区_中文黄色一级片_欧美日本中文字幕_高清视频91

當前位置: 首頁 / 技術干貨 / 正文
ajax回調函數介紹

2023-03-27

   班長 函數  ○

ajax回調函數介紹

  ●回調函數

  ○把函數 A 以實參的形式傳遞到 函數 B 內

  ○在函數 B 內以形參的方式調用到 函數 A

  ○此時我們可以把函數 A 叫做函數 B 的 回調函數

  ○我們在封裝異步代碼的時候會用到回調函數

  function fnA () {console.log('我是 fnA 函數內部的代碼')}

  function fnB(callback) {callback()}

  fnB(fnA)

  ●使用回調函數封裝一個異步代碼

  function fn(jinnang = () => {}) {

  console.log("班長去買水了");

  const timer = Math.ceil(Math.random() * 3000);

  setTimeout(() => {

  console.log("班長買完水了");

  console.log("耗時", timer);

  console.log("按照錦囊內的內容行事");

  jinnang();

  }, timer);

  }

  /**

  * fn 函數一旦調用, 班長出發開始去買水

  * 在班長出發的時候, 給他一個錦囊

  */

  fn(() => {

  console.log("去買一瓶牛奶");

  });

  fn();

  ●上述代碼已經完成了一個異步的封裝

  ●不過在工作中我們更多的是封裝網絡請求這種異步代碼

  ●但是我們這里通過一個 '買水耗時' 來模擬一個網絡請求的延遲, 我們約定如果時間超過 3500 毫秒, 那么就算是失敗, 否則就是成功

  function fn(jinnang = () => {}) {

  console.log("班長去買水了");

  const timer = Math.ceil(Math.random() * 3000) + 2000;

  setTimeout(() => {

  if (timer > 3500) {

  console.log("請求失敗", timer);

  } else {

  console.log("請求成功", timer);

  }

  }, timer);

  }

  /**

  * fn 函數一旦調用, 班長出發開始去買水

  * 在班長出發的時候, 給他一個錦囊

  */

  fn(() => {

  console.log("去買一瓶牛奶");

  });

  fn();

  ●此時我們已經封裝完畢了, 只不過這種封裝方式會帶來另一個問題, 就是回調地獄

  ●回調地獄: 當你使用回調函數過多的時候, 會出現的一種代碼書寫結構

  ●需求:

  ○再買水成功后, 讓班長幫忙退掉

  ○在推掉以后, 再次讓班長幫忙買水 (此時必須要在前一瓶水購買完成之后再去購買)

  ○在第二次買水成功以后, 再次讓班長去買水

  fn(

  () => {

  console.log("班長第一次買水成功, 幫我退掉");

  fn(

  () => {

  console.log("班長第二次買水成功");

  fn(

  () => {

  console.log("班長第三次買水成功");

  },

  () => {

  console.log("班長第三次買水失敗");

  }

  );

  },

  () => {

  console.log("班長第二次買水失敗");

  }

  );

  },

  () => {

  console.log("班長第一次買水失敗");

  }

  );

  ●這段代碼運行沒有任何問題, 但是閱讀起來極其不利于理解

  ○原因:

  ■按照回調函數的語法進行封裝, 只能通過傳遞一個函數作為參數來調用

  ■當你使用回調函數過多的時候, 會出現回調地獄的代碼結構

  ○解決:

  ■不按照回調函數的語法封裝

  ■ES6 推出了一種新的封裝異步代碼的方式, 叫做 Promise (承諾, 期約)

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

主站蜘蛛池模板: 午夜精品影院 | 欧美一区二区在线观看视频 | 成人在线免费网站 | 精品国产精品 | 在线日韩一区 | 国产精品久久久久久网站 | 蜜桃精品一区二区三区 | 麻豆精品国产传媒mv男同 | 日韩成人在线观看 | 在线视频 中文字幕 | av毛片一区 | 亚洲欧美激情精品一区二区 | 亚洲三区视频 | 日韩久久久久久 | 日韩久久久久 | 国产精品自拍网 | 欧美三极 | 久久久网站免费 | 玖玖玖精品 | 亚洲精品久久久 | 欧美日韩高清在线观看 | 亚洲成人av一区 | 精品理论片| 久艹久久| 最新亚洲 | 久久国产一区二区三区 | 天天爽夜夜爽夜夜爽精品视频 | 精品国产一区二区在线 | 日韩福利一区二区 | 综合五月婷 | 欧美久久精品 | 围产精品久久久久久久 | 黄色三级在线观看 | 国产亚洲精品美女 | 九九精品视频在线观看 | 欧美日韩中文字幕在线 | 久久99精品久久久久久琪琪 | 羞羞视频在线观看免费视频 | 久久久精彩视频 | 色嗨嗨av一区二区三区 | 欧州一区二区三区 |