अपने एपीआई को कॉल करने के लिए एक फ़ंक्शन बनाएं। इस फ़ंक्शन के भीतर हम अनुरोध को परिभाषित करते हैं callApiRequest = $.get(...
- भले ही यह एक चर की परिभाषा है, अनुरोध को तुरंत कहा जाता है, लेकिन अब हमारे पास अनुरोध को एक चर के रूप में परिभाषित किया गया है। अनुरोध को कॉल करने से पहले, हम जाँचते हैं कि क्या हमारा वेरिएबल परिभाषित है typeof(callApiRequest) != 'undefined'
और यह लंबित होने पर भी suggestCategoryRequest.state() == 'pending'
- यदि दोनों सत्य हैं, तो हम .abort()
अनुरोध करते हैं जो सफलता की कॉलबैक को चलने से रोकेगा।
// We need to wrap the call in a function
callApi = function () {
//check if request is defined, and status pending
if (typeof(callApiRequest) != 'undefined'
&& suggestCategoryRequest.state() == 'pending') {
//abort request
callApiRequest.abort()
}
//define and make request
callApiRequest = $.get("https://example.com", function (data) {
data = JSON.parse(data); //optional (for JSON data format)
//success callback
});
}
आपका सर्वर / एपीआई अनुरोध को निरस्त करने का समर्थन नहीं कर सकता है (अगर एपीआई ने पहले से ही कुछ कोड निष्पादित किया है?), लेकिन जावास्क्रिप्ट कॉलबैक में आग नहीं लगेगी। यह उपयोगी है, जब उदाहरण के लिए आप किसी उपयोगकर्ता को इनपुट सुझाव प्रदान कर रहे हैं, जैसे हैशटैग इनपुट।
आप त्रुटि कॉलबैक की परिभाषा को जोड़कर इस फ़ंक्शन को आगे बढ़ा सकते हैं - यदि अनुरोध रद्द कर दिया गया था तो क्या होना चाहिए।
इस स्निपेट के लिए सामान्य उपयोग-मामला एक पाठ इनपुट होगा जो keypress
घटना पर आग लगाता है । आप (कुछ) अनुरोध भेजने से रोकने के लिए एक टाइमआउट का उपयोग कर सकते हैं, जिसे आपको रद्द करना होगा .abort()
।