2013-01-05 10 views
5

के साथ jQuery वादा मेरे पास कॉलबैक के साथ एक AJAX कॉल है। मैं कॉलबैक समाप्त होने के बाद बस एक और विधि कॉल करना चाहता हूं..मैंने jQuery से वादा एपीआई का उपयोग किया था, लेकिन जैसा कि आप पहले विधि से पहले दूसरी विधि से नीचे देख सकते हैं उसे पहले पूरा कर लिया गया है।getJSON और कॉलबैक

कोई विचार?

my.data = function() { 
    var loadFlights = function (callback) { 
     //$.getJSON("/api/Acceptance/", function (data) { 
     // callback(data); 
     //}); 
     $.getJSON("/api/Acceptance").success(function (data) { 
      console.log("first: " + new Date().getTime()); 
      callback(data); 
     }) 
     .then(console.log("second:" + new Date().getTime())); 
    }; 

    return { load: loadFlights } 
    }(); 

परिणाम सांत्वना देने:

second:1357393615115 
first: 1357393615246 

उत्तर

9

इसके बजाय .then() को एक कॉलबैक फ़ंक्शन प्रदान करने की है, तो आप console.log("second:" + new Date().getTime()) के उत्पादन में गुजर रहे हैं (जिसके कारण second तुरंत मुद्रित जाता है)।

$.getJSON("/echo/json").success(function(data) { 
    console.log("first: " + new Date().getTime()); 
}).then(function() { 
    console.log("second:" + new Date().getTime()) 
}); 

डेमो:: http://jsfiddle.net/Blender/fJb7h/

को उस अज्ञात फ़ंक्शन कोड है कि आप कॉल करना चाहते (जैसा कि आपने .success() में किया था) लपेटता बनाओ

संबंधित मुद्दे