jquery - Recursive function that returns $.Deferred() with setTimeout -


i have recursive function returns $.deferred();

the function follows:

var mytest = function (i, deferred) {     if (!deferred) {         deferred = $.deferred();     }      if (i < 3) {         i++;         console.log("recursion (" + + ")!");         return mytest(i, deferred);     } else if (i === 3) {         console.log("resolving!");         return deferred.resolve("woohoo, reached " + + "!");     } }  /* call */ mytest(0).done(function (result) {     console.log(result); }); 

this gives expected output of:

recursion (1)! recursion (2)! recursion (3)! resolving! woohoo, reached 3! 

but if change line 8 be

settimeout(function() {     return mytest(i, deferred); }, 500); 

it fails. how can add timeout function achieve same result?

jsfiddle original code

jsfiddle timeout

if understand trying...

var mytest = function (i) {    var deferred = $.deferred();        var interval = setinterval(function(){      if (i < 3) {        i++;        console.log("iteration (" + + ")!");      } else {        console.log("resolving!");        deferred.resolve("woohoo, reached " + + "!");        clearinterval(interval);      }    }, 1000);        return deferred;  }    /* call */  mytest(0).done(function (result) {      console.log(result);  });


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -