प्रोग्रामर एक त्रुटि के बारे में अधिसूचित रूप से अधिसूचित कैसे प्राप्त करें इस पर विभाजित हैं।त्रुटि का उपयोग करने के क्या फायदे हैं?
कुछ प्रोग्रामर दो तर्कों के साथ कॉलबैक का उपयोग करना पसंद करते हैं: एक मूल्य और एक बुलियन जो बताता है कि मान गलत नहीं है या नहीं।
asyncFunct(function (value, noError) {
if (noError) {
// success, do something with value
} else {
// value is the error which is thrown
}
});
दूसरों नकारात्मक पसंद करते हैं (अर्थात् बूलियन बताना चाहिए कि क्या मूल्य गलत है): यह लाभ में है कि यह एक try catch
बयान की तरह लग रहा है।
asyncFunction(function (value, isErroneous) {
if (!isErrorneous) {
// success, do something with value
} else {
// value is the error which is thrown
}
});
asyncFunction(function (value) {
// success, do something with value
});
तो फिर वहाँ लोग हैं, जो अतुल्यकालिक कार्य करता है और errbacks के सफल निष्पादन के लिए अलग-अलग कॉलबैक का प्रस्ताव कर रहे हैं: उनका तर्क है कि यदि आप जानते हैं कि अतुल्यकालिक समारोह एक त्रुटि फेंक कभी नहीं होगा तो आप सुरक्षित रूप से दूसरा पैरामीटर छोड़ सकते हैं इस प्रकार है असीमित कार्यों के गलत निष्पादन के लिए।
asyncFunction(function (value) {
// success, do something with value
}, function (error) {
// handle the error
});
asyncFunction(function (value) {
// success, do something with value
});
asyncFunction(null, function (error) {
// handle the error
});
मैं पूछ नहीं कर रहा हूँ जो विधि के लिए आप पसंद करते हैं: यह अगर वह कॉलबैक, errbacks, दोनों या कोई भी हैंडल करना चाहते प्रोग्रामर चयन करने के लिए अनुमति देता है। मैं बस प्रत्येक विधि के फायदे और नुकसान के लिए पूछ रहा हूं ताकि मुझे पता चले कि किसके लिए उपयोग करना है।
कोई वास्तविक लाभ/नुकसान नहीं हैं। यह सिर्फ शैली का मामला है, इमो। – freakish
एक और तरीका है, जो अधिक शक्तिशाली आईएमओ है: [स्थगित वस्तुओं] (http://blogs.msdn.com/b/ie/archive/2011/09/11/asynchronous-programming-in-javascript-with- promises.aspx)। –
मैं स्थगित वस्तुओं को भी पसंद करता हूं। लेकिन जो भी तरीका आप चुनते हैं वह लगातार आपके ऐप में इसका उपयोग करता है, _best_ दृष्टिकोण चुनने से स्थिरता अक्सर अधिक महत्वपूर्ण होती है। – msanders