मैंने एक समस्या में भाग लिया है जहां मुझे Jquery में चल रहे एसिंक्रोनस जावास्क्रिप्ट विधि से कोई मान नहीं मिल रहा है। मेरे Jquery इस तरह दिखता है:एसिंक्रोनस जावास्क्रिप्ट विधि से रिटर्निंग मान?
$(document).ready(function() {
$('#splash_image_upload').change(function() {
var file = this.files[0];
var blob_string = create_blob(file);
alert(blob_string);
});
मैं मूल्य है कि 'ऑनलोड' घटना से आता है उपयोग करने में सक्षम हूँ, लेकिन मैं वास्तविक मूल्य वापस नहीं कर पा रहे। `
function create_blob(file) {
var reader = new FileReader();
reader.onload = (function() { return function(e) { return e.target.result; }; })();
reader.readAsDataURL(file);
}
हर बार जब मैं इस समारोह 'blob_str' चर का मान 'अनिर्धारित' है शायद क्योंकि काम समारोह समाप्त हो गया है से पहले किया जाता है पर अमल: मैं इस कोशिश की है। मुझे सच में यकीन नहीं है कि इस बारे में कैसे जाना है। क्या इस तरीके से मैं इस मूल्य को वापस कर सकता हूं ??
create_blob(file, function(blob_string) { alert(blob_string) });
function create_blob(file, callback) {
var reader = new FileReader();
reader.onload = function() { callback(reader.result) };
reader.readAsDataURL(file);
}
(विशेष रूप से AJAX वाक्छल इस तरह की अतुल्यकालिक कॉल के साथ सुंदर मानक है:
संबंधित: [? कैसे एक समारोह से एक AJAX कॉल से प्रतिक्रिया वापस जाने के लिए] (http://stackoverflow.com/प्रश्न/14220321/कैसे-से-वापसी-प्रतिक्रिया-से-एजेक्स-कॉल-टू-ए-फ़ंक्शन) – Bergi