jQuery ã® Deferred ã§ã®ã¨ã©ã¼å¦ç ãã®(3)
ãã®å 容㯠jQuery 1.7.2 ãå ã«è¨è¿°ãã¦ãã¾ãã
æå¾ã¯ $.when ãè¦ã¦ããã¾ããè¥å¹²æ®å¿µãªæ°åã«ãªã£ã¦ããã®ã§æå¾ããã¯ã¨æå¾ ãã¦ããã®ã§ãããçµè«ã¨ãã¦ã¯ãã£ã±ãæ®å¿µãªæ°åã®ã¾ã¾ã§ããã
ãã¦ã$.when ã§ãããå¼æ°ã«æå®ãã deferred ã並åã§å ¨é¨å®è¡ããå¾ã« resolve ãã¦ãããã¿ããã§ãã
$.when( async("Test 1", 1000), async("Test 2", 500), async("Test 3", 2000) ).done(function(){ console.log("done - " + JSON.stringify(arguments)); });
done ã®å¼æ°ã«ã¯ãçµæãé çªã«æ¸¡ãããããã§ãããã§ãã¨ã©ã¼ãçºçããå ´åã§ãããé常ã«æ²ããæãã§ãã
$.when( async("Test 1", 1000), async("Test 2", 500, true), //ããã§ã¨ã©ã¼ async("Test 3", 2000) ).done(function(){ console.log("done - " + JSON.stringify(arguments)); }).fail(function(){ console.log("fail - " + JSON.stringify(arguments)); });
reject ãããæã«ãããã« fail ãèµ°ã£ã¦ã¾ãããã¾ãã確ãã«ããã¥ã¡ã³ãã«ã¯ãããã風ã«è¨è¿°ããã¦ããã®ã§ãããã
The method will resolve its master Deferred as soon as all the Deferreds resolve, or reject the master Deferred as soon as one of the Deferreds is rejected.
http://api.jquery.com/jQuery.when/
ãªã«ãåé¡ãã£ã¦ããã¨ãè¤æ°ã¨ã©ã¼ãçºçããå ´åã¯ã©ãããã®ãã£ã¦ã¨ããã§ããããã¨ãæåããå 容ãåå¾ã§ããªãã®ã§ pipe ã¨åãããã«åå¥ã« then ã¨ãã§æåããå 容ãå¤æ°ã«ã¨ã£ã¦ãããªããã°ãªãã¾ãããã§ãã失æããå¾ã«æåãçºçããå¯è½æ§ãããã®ã§ãæåããå 容ãã¨ã£ã¦ããå¤æ°ã®ç¢ºèªã¿ã¤ãã³ã°ã工夫ããªãã¡ãªãã§ãããã
ã¡ãã£ã¨ãã©ããªæãã«ãªããæ¸ãã¦ã¿ãããã¨ä¸ç¬æãã¾ããããã©ãèãã¦ãããã©ãããå¦çãªã®ã§ããã¨ãã¾ãã
ã¨ãããã¨ã§ã $.when ã§ã®å¬ãããã§ãã®ã¯ãä¸æ°ã«å¦çãããã¦å®äºããã¿ã¤ãã³ã°ãç¥ããããã§ãéä¸ã§ã¨ã©ã¼ãããã£ã¦ããã®äºå®ãåããã°ããã£ã¦ãæåããå 容ã¯æ¨ã¦ããã¦ããã¨ã©ã¼å¾ã®ã»ãã®å¦çã®ç¶ç¶ãåãæµãã㦠OKãã¿ãããªæãããã§ããããã
pipe ã $.when ããã®ã¾ã¾ã§ã¯ä½¿ããªãæãã§ããã