これ、普通にやってもできないんですよ。
たとえば、
var hogeFunc = function() {
var d = new $.Deferred();
d.resolve();
return d.promise();
}
var showMessage = function(text) {
console.log("text is=" + text);
}
みたいな関数があって、
hogeFunc().then(showMessage("testだぴょーん"));
を実行しても、console.log の結果は正しく出ません。
じゃあ、どうすればいいのかというと
var hogeFunc = function() {
var d = new $.Deferred();
d.resolve("てすとだぴょん!");
return d.promise();
}
var showMessage = function(text) {
console.log("text is=" + text);
}
てやって
hogeFunc().then(showMessage);
てやると、できる、ようわからぬ(笑)
要するに resolveに引数与えるとそれが、thenに引き継がれるみたい。
以下の記事参考にしました。
jQuery.Deferredで登録時に引数を持たせたい
http://www.kuma-de.com/blog/2013-05-24/5350


コメント