jQuery.Deferredで登録時に引数を持たせたい2013/05/24こんにちは。今回はjQuery.Deferredです。これは、非同期処理をわりと簡潔に書けるようになるので、ソースコードがあっちにいったり、こっちにいったりしないで、見やすくなるのが便利ポイントかなと思いました。ASでもCommand系のライブラリがあったので、使用感としてはそれに近い感じでしょうか。並列、直列の非同期を書けるところとか。わかりやすいチュートリアル記事があったので、これで勉強デス。complete');});これやってて、例えば登録時(.then)に引数をもたせたいことって結構あると思います。3秒待ってから、5秒待ってからとか。ためしに引数をもたせてみてもうまくいかないのですよね。登録時に実行してしまって、関数を登録していないのが問題。complete');});また.thenに登録する関数の引数は実行時に前の.promise()の中に入る引数が入っているということもあります。d.promise();}myTimer().then(function(msg){console.log(msg);});前のタイマーのresolveで入れた文字列が、次の.thenの中のmsgに入っています。今回は文字列いれましたけど、配列でもObjectでも何でも入れて大丈夫です。d.promise();}}とかやっておけば大丈夫でした。ためしに、画像読み込みなども作ってみました。これで引数つけて登録できるので便利かなと。complete');});で考えてみると、.then()のときに.promise()を返す関数を登録すればよいので、クラスでもふつうに使えます。this.deferredObj.promise();}}//myTimerはひとつ前のコードから拝借したと思ってください。complete');})これ使って、よくFlashのときにやってた、FadeInとかのTween系とか、画像や外部テキストの読み込み処理を、クラス化したりすると便利かなーと思いました。LINEスタンプ作りました!毎日使える。プログラミングこのブログについてこんにちは。フロントエンドエンジニアです。自作のiPhoneアプリを作っています。