function getStockInformation(share) { // simulate realtime stock information return $.ajax({ // return promise url: '/echo/json/', data: {json: JSON.stringify({stock: Math.random()*100})}, type: "POST", delay: 1000 }).pipe(function(output){ return output.stock; }) ; // FILTERING } // The asynchronous task function buyOrSellTrigger(share, minValue, maxValue) { return getStockInformation(share).pipe(function(value){ if ( value < minValue ) return 'BUY' ; else if ( value > maxValue ) return 'SELL' ; else { $('<div></div>').html(share + ' - HOLD').appendTo('#status') ; // CHAINING: Deferred.pipe() returns a promise return buyOrSellTrigger(share, minValue, maxValue) ; } }) ; } var minimum = 10, maximum = 90 ; // set a trigger for buy/sell google buyOrSellTrigger('NASDAQ:GOOG', minimum, maximum).done(function(advice){ $('<div></div>').html('***** NASDAQ:GOOG - ' + advice).appendTo('#status') ; }); // set a trigger for buy/sell apple buyOrSellTrigger('NASDAQ:AAPL', minimum, maximum).done(function(advice){ $('<div></div>').html('***** NASDAQ:AAPL - ' + advice).appendTo('#status') ; });
<div id="status"></div>