मेरे Angular.js एप्लिकेशन में, मैं कुछ एसिंक्रोनस ऑपरेशन चला रहा हूं। इससे पहले कि मैं शुरू करता हूं, मैं एक मोडल डिव के साथ एप्लिकेशन को कवर करता हूं, फिर एक बार ऑपरेशन पूरा हो जाने के बाद, मुझे डिव को निकालने की जरूरत है, चाहे ऑपरेशन सफल रहा हो या नहीं।
वर्तमान में मेरे पास यह है:
LoadingOverlay.start();
Auth.initialize().then(function() {
LoadingOverlay.stop();
}, function() {
LoadingOverlay.stop(); // Code needs to be duplicated here
})
यह अच्छी तरह से काम करता है, हालांकि मैं इस छद्म कोड की तरह कुछ क्लीनर रखना पसंद करूंगा:
LoadingOverlay.start();
Auth.initialize().finally(function() { // *pseudo-code* - some function that is always executed on both failure and success.
LoadingOverlay.stop();
})
मुझे लगता है कि यह काफी सामान्य समस्या है, इसलिए मैं सोच रहा था कि यह किया जा सकता है, लेकिन डॉक में कुछ भी नहीं मिल सकता है। किसी भी विचार अगर यह किया जा सकता है?
then()
, तो आप निश्चित रूप से एक और श्रृंखला कर सकते हैं ....initialize().then(...).then(...)
। ऐसा कोई "अंत में" नहीं है; अंतिम हैंडलर अंतिम एक निर्दिष्ट है।