これ、普通にやってもできないんですよ。
たとえば、
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
コメント