function f1(param) { var defer = $.Deferred(); setTimeout(function() { $('#result').html($('#result').html() + '<br/>f1 got parameter : ' + param); //將'f2'當參數傳給don()或then()之後的function defer.resolve('f2'); }, 1000); return defer; } function f2(param) { var defer = $.Deferred(); setTimeout(function() { $('#result').html($('#result').html() + '<br/>f2 got parameter : ' + param); //將'f3'當參數傳給don()或then()之後的function defer.resolve('f3'); }, 1000); return defer; } function f3(param) { var defer = $.Deferred(); setTimeout(function() { $('#result').html($('#result').html() + '<br/>f3 got parameter : ' + param); //defer.resolve(param + ' f3'); }, 1000); return defer; } //Deferred參數的傳遞 f1('f1').then(f2).then(f3);
<div id='result'> Result: </div>