<p>
Here are the results when using promise in non sequential form:
</p>
<div id="resultsAsyncCall">
</div>
<p>Here are the resutls when using promise in a sequential form (should take 3 secs look at the func methods)</p>
<div id="resultsSyncCall">
</div>
<div id="progressReport">
</div>
<div id="progressReport2">
</div>
<div id="progressReport3">
</div>
<hr/>
<button id="press">
Press to begin execution
</button>
<div>
Results for exec1: <span id="exec1Results"></span><br/>
Results for exec2: <span id="exec2Results"></span>
</div>
<div id="waitResults"/>
<hr/>
<button id="press2">
Press to begin execution
</button>
<button id="press3">
Press and watch console
</button>
<div>
Results for exec1: <span id="exec1Results2"></span><br/>
Results for exec2: <span id="exec2Results2"></span>
</div>
<div id="waitResults2"/>
CSS
.answer {
color:red;
}
JavaScript
var countUpTimer;
var countUp_number = -10;
function func1() {
var dfd = $.Deferred();
dfd.notify("In the func1...");
setTimeout(function() {
var d = new Date();
dfd.notify("processing...");
console.log("about to resolve! "+d.getTime());
var message = {
txt:"Password"
};
dfd.notify("done!... for func1!!");
dfd.resolve(message);
}, 1000);
return dfd;
}
function func2(message) {
var d = new Date();
console.log("about to resolve! "+d.getTime());
var dfd = $.Deferred();
dfd.notify("in the func2..");
setTimeout(function() {
dfd.notify("processing...");
if (message.txt == 'Password') {
message.name = "Nando";
dfd.notify("done!... for func21!!");
dfd.resolve(message);
}
}, 1000);
return dfd;
}
function func3(message) {
var d = new Date();
console.log("about to resolve! "+d.getTime());
var dfd = $.Deferred();
dfd.notify("in func3");
setTimeout(function() {
dfd.notify("processing...");
if (message.name == 'Nando') {
message.isActive = true;
dfd.notify("done!... for func31!!");
dfd.resolve(message);
}
}, 1000);
return dfd;
}
function nonSeqFunc1(val) {
var defer = $.Deferred();
defer.resolve(val);
return defer.promise();
}
function nonSeqFunc2(val) {
var defer = $.Deferred();
defer.resolve(val);
return defer.promise();
}
function nonSeqFunc3(val) {
var defer = $.Deferred();
defer.resolve(val);
return defer.promise();
}
var pro1 = nonSeqFunc1(2);
var pro2 = nonSeqFunc1(3);
var pro3 = nonSeqFunc1(5);
$.when(pro1,pro2,pro3).done(function (result1, result2,result3) {
var total = result1 + result2 + result3;
$("#resultsAsyncCall").html("<span class='answer'>"+total+"</span>");
});
var df1 = func1();
df1.progress(function(progress) {
$("#progressReport").html("Progres: "+progress);
});
var df2 = func2();
df2.progress(function(progress) {
$("#progressReport2").html("Progres: "+progress);
});
var df3...
Please Whitelist JSFiddle in your content blocker.
Help keep JSFiddle free for always by one of two ways:
Whitelist JSFiddle in your content blocker (two clicks)
Go PRO and get access to additional PRO features →
Join the 4+ million users, and keep the JSFiddle dream alive.
Ad-free
All ads in the editor and listing pages are turned completely off.
Use pre-released features
You get to try and use features (like the Palette Color Generator) months before everyone else.
Fiddle collections
Sort and categorize your Fiddles into multiple collections.
Private collections and fiddles
You can make as many Private Fiddles, and Private Collections as you wish!
Console
Debug your Fiddle with a minimal built-in JavaScript console.