Rumah pembangunan bahagian belakang tutorial php ajax和promise的结合使用方法分享

ajax和promise的结合使用方法分享

Feb 23, 2018 am 11:17 AM
ajax promise Cara menggunakan

本文主要和大家分享ajax和promise的结合使用方法,在需要依赖完成的ajax请求可使用promise保证执行顺序   在第一个请求正确返回后再发送第二个请求。希望能帮助到大家。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

/*

  定义一个使用promise的ajax请求,这里依赖jquery

  参数中请求url为必填参数

*/

const ajaxPromise=  param => {

  return new Promise((resovle, reject) => {

    $.ajax({

      "type":param.type || "get",

      "async":param.async || true,

      "url":param.url,

      "data":param.data || "",

      "success": res => {

        resovle(res);

      },

      "error": err => {

        reject(err);

      }

    })

  })

}

 

/*

   第一个请求

*/

let step1 = () => {

    ajaxPromise({

      "url":"",

    }).then(res => {

        console.log("第一个请求正确返回==>"+res);  

        step2(res);  

    }).catch(err => {

        console.log("第一个请求失败");  

    })

}

 

/*

   第二个请求

*/

let step2 = (res) => {

    ajaxPromise({

      "type":"get",

      "url":"",

      "data":{"name":res}

    }).then(res => {

        console.log("第二个请求正确返回==>"+res);  

    }).catch(err => {

        console.log("第二个请求失败==>"+err);  

    })

}

 

step1();

Salin selepas log masuk

原生js写ajaxpromise对象

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

const ajaxPromise =  param => {

  return new Promise((resovle, reject) => {

    var xhr = new XMLHttpRequest();

    xhr.open(param.type || "get", param.url, true);

    xhr.send(param.data || null);

 

    xhr.onreadystatechange = () => {

     var DONE = 4; // readyState 4 代表已向服务器发送请求

     var OK = 200; // status 200 代表服务器返回成功

     if(xhr.readyState === DONE){

      if(xhr.status === OK){

        resovle(JSON.parse(xhr.responseText));

      else{

        reject(JSON.parse(xhr.responseText));

      }

     }

    }

  })

}

Salin selepas log masuk

关于promise使用时的几点:

  1. 使用方法:先创建一个promise对象new Promise(),根据业务需求判断执行成功或失败,成功调用resovle(),失败则调用reject()。

  2. Promise对象的then(onFulfilled,onRejected)有两个参数,成功执行onFulfilled,失败执行onRejectd

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    p.then(function(value) {

       // fulfillment成功

      }, function(reason) {

      // rejection失败

    });

     

    //不过通常会使用catch()来捕获失败,上段代码通常写为:

    p.then(function(value) {

        // fulfillment成功

    }).catch(function(reason) {

        //rejection失败

    })

    Salin selepas log masuk
  3. Promise对象的then()会返回一个新的Promise对象

相关推荐:

微信小程序Promise简化回调实例分享

jQuery的Promise如何正确使用

关于promise对象的简单用法


Atas ialah kandungan terperinci ajax和promise的结合使用方法分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX Mar 15, 2024 am 08:31 AM

Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX

Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk Mar 04, 2024 pm 09:28 PM

Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk

Bagaimana untuk menyelesaikan ralat 403 yang dihadapi oleh permintaan jQuery AJAX Bagaimana untuk menyelesaikan ralat 403 yang dihadapi oleh permintaan jQuery AJAX Feb 20, 2024 am 10:07 AM

Bagaimana untuk menyelesaikan ralat 403 yang dihadapi oleh permintaan jQuery AJAX

Bagaimana untuk menyelesaikan ralat permintaan jQuery AJAX 403 Bagaimana untuk menyelesaikan ralat permintaan jQuery AJAX 403 Feb 19, 2024 pm 05:55 PM

Bagaimana untuk menyelesaikan ralat permintaan jQuery AJAX 403

Apakah alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS? Apakah alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS? Mar 18, 2024 am 11:07 AM

Apakah alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS? Bagaimana untuk menggunakan alat pengaktifan KMS?

Apakah PyCharm? Pengenalan fungsi dan penerangan terperinci tentang penggunaan Apakah PyCharm? Pengenalan fungsi dan penerangan terperinci tentang penggunaan Feb 20, 2024 am 09:21 AM

Apakah PyCharm? Pengenalan fungsi dan penerangan terperinci tentang penggunaan

Cara menggunakan alat pengaktifan Xiaoma win7 - Cara menggunakan alat pengaktifan Xiaoma win7 Cara menggunakan alat pengaktifan Xiaoma win7 - Cara menggunakan alat pengaktifan Xiaoma win7 Mar 04, 2024 pm 06:16 PM

Cara menggunakan alat pengaktifan Xiaoma win7 - Cara menggunakan alat pengaktifan Xiaoma win7

Cara menggabungkan sel menggunakan kekunci pintasan Cara menggabungkan sel menggunakan kekunci pintasan Feb 26, 2024 am 10:27 AM

Cara menggabungkan sel menggunakan kekunci pintasan

See all articles