จากเอกสาร JQuery
อ็อบเจ็กต์ jqXHR ที่ส่งคืนโดย$.ajax()
ณ jQuery 1.5 นำอินเตอร์เฟส Promise มามอบคุณสมบัติวิธีการและพฤติกรรมทั้งหมดของสัญญา (ดูที่วัตถุรอการตัดบัญชีสำหรับข้อมูลเพิ่มเติม) เมธอดเหล่านี้รับอาร์กิวเมนต์ของฟังก์ชันหนึ่งตัวหรือมากกว่าที่ถูกเรียกเมื่อการ$.ajax()
ร้องขอสิ้นสุดลง วิธีนี้ช่วยให้คุณสามารถกำหนดการโทรกลับหลายครั้งในการร้องขอเดียวและแม้กระทั่งการกำหนดการโทรกลับหลังจากที่คำขอเสร็จสิ้น (หากคำขอเสร็จสมบูรณ์แล้วจะมีการโทรกลับทันที) วิธีการสัญญาที่ใช้ได้ของวัตถุ jqXHR รวมถึง:
jqXHR.done(function( data, textStatus, jqXHR ) {});
โครงสร้างทางเลือกอื่นสำหรับตัวเลือกการเรียกกลับสำเร็จอ้างอิงdeferred.done()
สำหรับรายละเอียดการใช้งาน
jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});
โครงสร้างทางเลือกอื่นสำหรับตัวเลือกการเรียกกลับข้อผิดพลาด.fail()
วิธีแทนที่เมธอด .error () ที่คัดค้าน อ้างถึง deferred.fail () สำหรับรายละเอียดการใช้งาน
jqXHR.always(function( data|jqXHR, textStatus, jqXHR|errorThrown ) { });
(เพิ่มเข้ามาใน jQuery 1.6) ความสร้างทางเลือกให้กับตัวเลือกการเรียกกลับสมบูรณ์.always()
วิธีการแทนที่เลิกใช้.complete()
วิธีการ
ในการตอบสนองต่อคำขอที่ประสบความสำเร็จอาร์กิวเมนต์ของฟังก์ชันจะเหมือนกับของ.done()
data, textStatus และ jqXHR สำหรับคำร้องขอที่ล้มเหลวอาร์กิวเมนต์จะเหมือนกับของ.fail()
: อ็อบเจ็กต์ jqXHR, textStatus และ errorThrown อ้างถึงdeferred.always()
สำหรับรายละเอียดการใช้งาน
jqXHR.then(function( data, textStatus, jqXHR ) {}, function( jqXHR, textStatus, errorThrown ) {});
รวมการทำงานของ.done()
และ.fail()
วิธีการอนุญาต (เหมือน jQuery 1.8) สัญญาพื้นฐานที่จะจัดการ อ้างถึงรอการตัดบัญชี.then()
สำหรับรายละเอียดการใช้งาน
ประกาศการเลิกใช้งาน: The jqXHR.success()
, jqXHR.error()
และjqXHR.complete()
callbacks ถูกลบตั้งแต่ jQuery 3.0 คุณสามารถใช้
jqXHR.done()
, jqXHR.fail()
และjqXHR.always()
แทน
success:
/.done()
ถูกกำหนดอย่างไรถ้าทั้งหมด เช่นจะsuccess:
ใช้งานเป็นวันแรก.done()
เหล่านี้หรือไม่