jquery - Combining promises with Q -


in jquery, can combine promises follows:

var promise = $.when(func1.execute(), func2.execute()); promise.done(function (data1, data2) { // code here } 

how rewrite using q?

also. benefits of using q in scenario on jquery?

simple answer:

var promise = q.all([func1.execute(), func2.execute()]); promise.spread(function (data1, data2) {   // code here }) .done(); 

annotated:

//make `promise` promise array var promise = q.all([func1.execute(), func2.execute()]);  //use spread spread array across arguments of function promise.spread(function (data1, data2) {   // code here }) //use done errors thrown .done(); 

the concepts in q more defined. promise represents single value may not available yet. parallels synchronous code precisely.

to represent multiple values then, use array. q.all helper method takes array of promises, , returns promise array containing fulfilled values. if promise in array rejected, resulting promise rejected.

because in case know how long array , want items separately, it's convenient use spread helper provided q. when called on promise array, spread takes items in array , spreads them out across arguments of function. have done:

//make `promise` promise array var promise = q.all([func1.execute(), func2.execute()]); promise.done(function (data) {   var data1 = data[0];   var data2 = data[1];   // code here }); 

this perhaps conceptually simpler, considerably less clean. recommend read through https://github.com/kriskowal/q/wiki/coming-from-jquery has helpful advice people coming jquery. if find in can improved, can edit , future people making same transition.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -