jQuery - 用Deferred的then()傳遞參數
by hugogo7646
HTML
<div id='result'>
Result:
</div>
JavaScript
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);