1 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sageteoff [2014/12/27(“y) 18:40:07.70 ID:MwQYLNUR.net] python‚âruby‚âPHP‚Æ“¯‚¶“y•U‚Åjavascript‚ªŽg‚¦‚邿‚¤‚ɂȂè‚Ü‚µ‚½B ƒT[ƒoƒTƒCƒhjavascript‚ɂ‚¢‚ÄŒê‚è‚Ü‚µ‚傤B node.js - google‚ªŠJ”‚µ‚½V8ƒGƒ“ƒWƒ“ã‚ÅŽÀs‚Å‚«‚鈗Œn nodejs.org/ io.js - node.js ŒÝŠ·‚Å Joyent ‚̉e‹¿‚©‚ç‚Ì’E‹p‚ð–ÚŽw‚·ˆ—Œn iojs.org/ Rhino - JVMã‚ÅŽÀs‚Å‚«‚鈗Œn https://developer.mozilla.org/ja/Rhino io.js ‚ÌŒoˆÜ stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js javascript‚Íruby‚Æ”äŠr‚µ‚Ä‚à‚©‚Ȃ葬‚¢ shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv Šî‘b‚©‚çŠw‚ÔNode.js gihyo.jp/dev/serial/01/nodejs node.js‚ÌŠT—v‚ƃAƒvƒŠƒP[ƒVƒ‡ƒ“ŠJ”‚Ì€”õ gihyo.jp/dev/serial/01/realtimeweb/0002 ‘OƒXƒŒ ynode.jszƒT[ƒoƒTƒCƒhjavascript 2yRhinoz peace.2ch.net/test/read.cgi/tech/1358937029/ ynode.jszƒT[ƒoƒTƒCƒhjavascriptyRhinoz toro.2ch.net/test/read.cgi/tech/1310087535/
2 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2014/12/27(“y) 18:40:56.41 ID:MwQYLNUR.net] ‚ ‚¯‚¨‚ß‚±‚Æ‚æ‚ë
3 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2014/12/27(“y) 18:42:30.42 ID:Cc0RXd7d.net] yesde.js
4 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2014/12/27(“y) 22:58:41.76 ID:2nBgrTKt.net] node.js‚Á‚Ä—¬s‚é‚ÌH
5 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2014/12/27(“y) 23:02:11.92 ID:+XmnrNOH.net] —¬s‚Á‚Ä‚é —¬s‚Á‚Ä‚½
6 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2014/12/31(…) 18:23:54.12 ID:ySiWi1AV.net] gulp 4 ‚Á‚ÄŽg‚¦‚é‚ÌH
7 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2014/12/31(…) 19:45:43.48 ID:qeTCZCBA.net] node-webkit‚âatom-shell‚̓XƒŒƒ`H OK‚È‚çA
8 –¼‘OF¡‚Ç‚Á‚¿Ì—p‚·‚é‚©¦‚–À‚Á‚Ä‚é‚ñ‚Å‚·‚¯‚Ç [] [‚±‚±‰ó‚ê‚Ă܂·]
9 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/01(–Ø) 16:37:51.69 ID:PtOebUla.net] unode.jsŠo‚¦‚ê‚΃Nƒ‰ƒCƒAƒ“ƒg‚àƒT[ƒo‚àjavascript‚¾‚©‚瑼‚ÌŒ¾ŒêŠo‚¦‚È‚‚Ä‚·‚Þ‚ºIv ‚ƈÀˆÕ‚ÉŠñ‚Á‚Ä‚«‚½‚ɂ킩‚ªƒCƒxƒ“ƒgƒhƒŠƒuƒ“Žü‚肪“ª‚É“ü‚ç‚È‚‚Ä‚·‚²‚·‚²‘ÞŽU‚·‚éƒP[ƒX‚ª‘½‚»‚¤
10 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 00:11:15.27 ID:8He3Adur.net] >>8 ‰´‚Í‚»‚ê‚ɋ߂¢
11 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 00:20:31.87 ID:mlj15zVW.net] ‚Æ‚è‚ ‚¦‚¸Promise‚ð—‰ð‚µ‚È‚¢‚Æ”ñ“¯Šú‚̃ƒŠƒbƒg‚ð¶‚©‚¹‚È‚¢‚¾‚낤‚È
12 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 00:22:52.63 ID:1zRkX7fJ.net] >>8 Ž©ŒÈЉ
13 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 00:54:28.10 ID:buPBY5a2.net] Promise ‚Á‚Ä”ñ“¯Šúˆ—‚̃R[ƒ‹ƒoƒbƒN‚ð”äŠr“IƒLƒŒƒC‚É‘‚¯‚éA ‚Á‚ĈȊO‚̃ƒŠƒbƒg‚Á‚ĉ½‚©‚ ‚é‚ÌH
14 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 14:54:02.14 ID:mlj15zVW.net] >>12 ãY—í‚Á‚Ä‚¢‚¤‚Ì‚ªžB–†‚È•\Œ»‚¾‚ª‚¨‚¨‚ނˈȉº‚̃ƒŠƒbƒg‚ª‚ ‚é EƒR[ƒ‹ƒoƒbƒNŠÖ”‚©‚çX‚ɃR[ƒ‹ƒoƒbƒN‚ðŒÄ‚ÔŽž‚ɃlƒXƒg‚ª[‚‚È‚é‚Ì‚ð–h‚°‚é @(ƒ\[ƒX‚ªŽOŠpŒ`‚ɂȂé‚Ì‚ð–h‚°‚é) EA,B,C‚Ì“àAB‚ªI‚í‚Á‚ĂĂ©‚ÂC‚ªI—¹‚µ‚½’¼Œã‚Ɉ—‚ðŠJŽn‚·‚邯‚©‚̧Œä‚ªŠÈ’P‚ɂȂé @(‚‚¤‚©Ž©‘O‚Å‚â‚낤‚Æ‚·‚邯‚©‚È‚è–Ê“|‚ÈŽ–‚ɂȂé) EƒGƒ‰[ˆ—‚ðˆê“Z‚߂ɂµ‚½‚è‚È‚ñ‚©‚̧Œä‚ªŠÈ’P‚É‚È‚é ‚±‚ê‚ðãY—í‚É‘‚¯‚é‚̈ꌾ‚Å‚‚‚Á‚Ä‚µ‚Ü‚Á‚½‚瑼‚̃ƒŠƒbƒg‚Í–³‚¢
15 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/02(‹à) 16:32:56.94 ID:buPBY5a2.net] >>13 ƒŒƒX‚³‚ñ‚‚·B >>8 ‚ɑ΂µ‚Ä‚ÍA‚Þ‚µ‚ëƒR[ƒ‹ƒoƒbƒNŠÖ”‚ðŽg‚Á‚½‚â‚è•û‚̂ق¤‚ª node.js‚Ì“®ì‚ð—‰ð‚Å‚«‚Ä‚¢‚¢‚ñ‚¶‚á‚È‚¢‚©‚ÆŽv‚Á‚½‚̂łËB
16 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/03(“y) 11:31:09.56 ID:duDbuP4G.net] >ƒ\[ƒX‚ªŽOŠpŒ` ˜R‚ê‚̓`ƒxƒbƒg‘Šø‚Ý‚½‚¢‚ɂȂé
17 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/03(“y) 22:51:09.22 ID:Uo8+VTLN.net] Promise‚È‚ñ‚ÄŽÀÛãY—í‚É‘‚«‚â‚·‚¢ƒ‰ƒCƒuƒ‰ƒŠ‚̈ê‚‚Á‚Ä‚¾‚¯‚¾‚©‚ç uPromise‚ð—‰ð‚µ‚È‚¢‚Æ”ñ“¯Šú‚̃ƒŠƒbƒg‚ð¶‚©‚¹‚È‚¢v‚Á‚Ä‚Ì‚Í •\‘w‚µ‚©—‰ð‚µ‚ĂȂ¢‚Á‚ÄØ‚¾‚í‚È Promise‚Æ”ñ“¯Šú‚ðjQuery‚ÆDOM‚ɂłà’u‚«Š·‚¦‚Äl‚¦‚Ä‚Ý‚é‚Æ‚¢‚¢
18 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/03(“y) 23:38:28.29 ID:AuGuhWCh.net] >>16 ŽÀÛ¶‚©‚¹‚È‚¢‚¾‚ë > EA,B,C‚Ì“àAB‚ªI‚í‚Á‚ĂĂ©‚ÂC‚ªI—¹‚µ‚½’¼Œã‚Ɉ—‚ðŠJŽn‚·‚邯‚©‚̧Œä‚ªŠÈ’P‚É‚È‚é ”ñ“¯Šúˆ—‚ð‚â‚Á‚Ă邯ª‚±‚¤‚¢‚¤Ž–‚ª‚µ‚å‚Á‚¿‚イ‚ ‚邯‚ÇA‚Ç‚¤‚â‚Á‚ÄŽ©‘O‚Å‚â‚ñ‚ÌH ’P‚Ƀtƒ‰ƒO‚¾‚炯‚Ì•³‚Ý‚½‚¢‚ȃ\[ƒX‚ªo—ˆ‚邾‚¯‚¾
19 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:06:14.65 ID:NffMCEWR.net] ‚»‚Ì’ö“x‚ÍŽ©‘O‚Å‚à•À—ñ‚Æ’€ŽŸ‚̬‚³‚ȃwƒ‹ƒpŠÖ”‚ð—pˆÓ‚·‚邾‚¯‚Å\•ª‚«‚ê‚¢‚É‘‚¯‚邾‚ë ŽÀÛ‚Í‚»‚ñ‚È‚à‚ñŽ©‘O‚Å‘‚©‚¸‚ÉasyncŽg‚Á‚Ä‚½‚¯‚Ç‚È ECMA•W€‚¾‚©‚çŽdŽ–‚¶‚áPromiseŽg‚Á‚Ä‚‚¯‚Ç‚»‚ñ‚Ȃ̂͊‘F•\‘w‚̘b‚ɉ߂¬‚È‚¢‚æ Promise‚æ‚èStream‚ª“K‚·‚邱‚Æ‚à‘½‚¢‚µ
20 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:10:50.21 ID:kuXg+7pG.net] >>18 ‚Ç‚¤‚¹ƒ}ƒ‹ƒ`ƒXƒŒƒbƒhvs”ñ“¯Šúˆ—‚ÌŽ–‚¢‚Á‚Ä‚ñ‚¾‚ë ‚»‚ñ‚ÈŽ–Œ¾‚Á‚Ä‚ñ‚¶‚á‚Ë[‚ñ‚¾‚æ ƒXƒŒ‚Ì—¬‚ê‚à“ǂ܂¸‚ɉ½ˆêl‚Ńuƒ`Ø‚ê‚Ä‚ñ‚¾‚æƒAƒz‚©
21 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:18:39.72 ID:LcMrfHes.net] >>18 ˆê•û‰´‚ÍAasync‚à‚Ç‚«‚ðŽ©‘O‚Åì‚Á‚½BiŽï–¡‚Å‚¾‚¯‚Çj ”ñ“¯Šúˆ—‚Ì’†‚Å‚³‚ç‚É”ñ“¯Šúˆ—‚ð‚µ‚ÄA‚»‚ꂼ‚ê‚ÌI—¹Žž‚ÉŽw’肳‚ꂽŠÖ”‚ðŒÄ‚Ño‚· ‰Â”\«‚ª‚ ‚邿‚¤‚ȃvƒƒOƒ‰ƒ€‚¾‚Á‚½‚ñ‚ÅA“r’†“ª‚ª‚±‚ñ‚ª‚炪‚Á‚½‚¯‚lj½‚Æ‚©‚Å‚«‚½‚íB
22 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:26:18.12 ID:kuXg+7pG.net] >>20 ˆê‰ž‚¾‚¯‚ÇAƒuƒ‰ƒEƒU“à‘ ‚ÌPromise‚ÍJavaScript‚ÅŽÀ‘•o—ˆ‚È‚¢Ž–‚ð‚µ‚Ä‚é‚©‚ç PromiseŽg‚Á‚½•û‚ª‚¢‚¢‚Ƃ͎v‚¤‚æ E“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ÅŽÀs‚·‚é Eˆù‚Ýž‚܂ꂽ—áŠO‚ðƒfƒoƒbƒOo—ˆ‚é ‚Á‚Ă̂ª‚»‚¤
23 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:35:28.28 ID:NffMCEWR.net] >>19 ‚Ç‚±‚ðŒë“Ç‚·‚邯‚»‚¤‚È‚é‚ñ‚¾‚æwww •À—ñ‚Á‚Ă̂ÍPromise.all()‚âasync‚Ìparallel()‚̂悤‚Ȉ—ƒtƒ[‚Ì‚±‚Æ ’€ŽŸ‚Á‚Ă̂ÍPromise‚Ìthen()‚É‚æ‚éƒ`ƒF[ƒ“‚âasync‚Ìseries()Ewaterfall()‚̂悤‚Ȉ—ƒtƒ[‚Ì‚±‚Æ ‰´‚Ì•û‚̓XƒŒ‚Ì—¬‚ê‚ð“Ç‚ß‚Ä‚é‚ÆŽv‚¤‚¼
24 –¼‘OF20 mailto:sage [2015/01/04(“ú) 00:38:56.49 ID:LcMrfHes.net] >>21 ƒuƒ‰ƒEƒU‚ÌJavascript‚àƒVƒ“ƒOƒ‹ƒXƒŒƒbƒh‚¶‚á‚È‚©‚Á‚½‚Á‚¯H ‚Å‚ ‚ê‚ÎA E“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ÅŽÀs‚·‚é Eˆù‚Ýž‚܂ꂽ—áŠO‚ðƒfƒoƒbƒOo—ˆ‚é ‚ÍPromiseŽg‚í‚È‚‚Ä‚à‚Å‚«‚邿BŽg‚Á‚½•û‚ªŠy‚¾‚낤‚¯‚ÇB
25 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:53:04.50 ID:kuXg+7pG.net] >>23 > E“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ÅŽÀs‚·‚é ‚±‚ê‚ÍsetTimeoutŽg‚Á‚½ƒnƒbƒN‚ª‚ ‚Á‚ĂقڊmŽÀ‚Ȃ͉̂”\‚¾‚¯‚ÇA â‘ΊmŽÀ‚ÈŽÀ‘•‚̓uƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—‚È‚ñ‚¾‚æ‚Ë > Eˆù‚Ýž‚܂ꂽ—áŠO‚ðƒfƒoƒbƒOo—ˆ‚é ‚»‚è‚áAƒ‰ƒCƒuƒ‰ƒŠ“à•”‚Ìcatch“à‚ɃuƒŒ[ƒNƒ|ƒCƒ“ƒg‚𒣂Á‚đ҂¿‚©‚Ü‚¦‚Ä‚¢‚ê‚Î ‰Â”\‚¾‚ª–ˆ‰ñ‚»‚ñ‚ÈŽ–‚·‚ñ‚Ì‚©H‚¢‚â‚·‚é‚킯‚È‚¢ ‚»‚µ‚Ä—áŠO‚ªƒXƒ‹[‚³‚ê‚ĉ½‚à‹N‚«‚È‚¢
26 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:54:44.21 ID:NffMCEWR.net] >>21 ƒT[ƒoƒTƒCƒhJSƒXƒŒ‚Åuƒuƒ‰ƒEƒU“à‘ ‚ÌPromisev‚Á‚Äw ‚»‚±‚Ív8‚ÌPromiseŽÀ‘•‚Á‚Ä‘‚¯‚æ >>22 Q‚Æ‚©Blurbird‚Í‚»‚ê‚ç‚ðJS‚ÅŽÀ‘•‚µ‚Ä‚é‚킯‚¾‚©‚ç‚È ‚Ç‚¤‚µ‚ÄJS‚ÅŽÀ‘•‚Å‚«‚È‚¢‚ÆŽv‚¢ž‚ñ‚¾‚Ì‚©“䂾
27 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 00:56:26.84 ID:NffMCEWR.net] ˆÀ‰¿ƒ~ƒXA>>25 ‚̌㔼‚Í>>23 ‚ւ̃ŒƒX ‚ ‚ÆBlurbird‚¶‚á‚È‚‚ÄBluebird
28 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 01:03:40.55 ID:kuXg+7pG.net] >>25 ƒuƒ‰ƒEƒU“à‘ ‚Á‚Äc‚²‚ß‚ñ‚¿‚á‚¢ Q‚Æ‚©Blurbird‚͂قڊmŽÀ‚ÈŽÀ‘•‚Å‚¨’ƒ‚ð‘÷‚µ‚Ä‚é (ŽÀ—pã–â‘è‚È‚¢‚¯‚Ç) —áŠO‚ÌŒ‚Í>>24 ‚̒ʂ肾
29 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 01:21:16.51 ID:NffMCEWR.net] >>27 u‚¨’ƒ‚ð‘÷‚µ‚Ä‚év‚ɂ‚¢‚ÄÚ‚µ‚ node‚Å‚Íprocess.nextTick()‚©setImmediate()‚ÅŠmŽÀ‚É”ñ“¯Šú‚ɂł«‚邪H v8‚ÌPromise‚¾‚Á‚ă}ƒCƒNƒƒ^ƒXƒNƒLƒ…[‚É“ü‚ê‚ç‚ê‚ÄŒ‹‹Ç‚Ínode‚̃Cƒxƒ“ƒgƒ‹[ƒv‚ň—‚³‚ê‚é‚͓̂¯‚¶ —áŠO‚̃fƒoƒbƒO‚Á‚Ä‹ï‘Ì“I‚É‚ÍH Promise.catch()‚ɃuƒŒ[ƒNƒ|ƒCƒ“ƒg•t‚¯‚ê‚é‚Á‚ĘbH(‚»‚ê‚̓uƒ‰ƒEƒUŠÖŒW‚È‚¢‚ÆŽv‚¤‚ªcH) ‚à‚µ‚»‚¤‚Ȃ烉ƒCƒuƒ‰ƒŠ‚ªcatch‚µ‚½—áŠO‚̓R[ƒ‹ƒoƒbƒN‚Ì‘æ1ˆø”‚É“n‚³‚ê‚é‚Ì‚ªnode‚Ì—¬‹V‚Å“¯‚¶‚悤‚ɂł«‚邪H
30 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 01:41:12.11 ID:NffMCEWR.net] ‚ÅA>>19 ‚Í>>18 ‚ðŒë“Ç‚µ‚Ä‚½‚Á‚Ä‚±‚Ƃł¢‚¢‚Ì‚©H >>22 ‚ð“Ç‚ñ‚¾ã‚ł̔½˜_‚ÍH
31 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 01:57:43.71 ID:kuXg+7pG.net] >>28 > node‚Å‚Íprocess.nextTick()‚©setImmediate()‚ÅŠmŽÀ‚É”ñ“¯Šú‚ɂł«‚邪H Q‚Æ‚©‚Ínode—p‚âIE—p‚¶‚á‚È‚¢‚ªAꇕª‚¯‚µ‚Ä‚é‰Â”\«‚Í‚ ‚é > v8‚ÌPromise‚¾‚Á‚ă}ƒCƒNƒƒ^ƒXƒNƒLƒ…[‚É“ü‚ê‚ç‚ê‚ÄŒ‹‹Ç‚Ínode‚̃Cƒxƒ“ƒgƒ‹[ƒv‚ň—‚³‚ê‚é‚͓̂¯‚¶ ‚»‚ꂪJavaScript‚ÅŽÀ‘•o—ˆ‚È‚¢Ž–‚ð‚µ‚Ä‚é‚±‚Æ‚¶‚á‚È‚‚ÄH > —áŠO‚̃fƒoƒbƒO‚Á‚Ä‹ï‘Ì“I‚É‚ÍH à–¾‚ª–Ê“|‚ɂȂÁ‚Ä‚«‚½c Promise‚ÉŒÀ‚Á‚½˜b‚µ‚¶‚á‚È‚¢‚ªAƒ‰ƒCƒuƒ‰ƒŠ“à‚Åtry,catch‚µ‚¿‚á‚Á‚Ă邯 ŒÄ‚Ño‚µ‘¤‚É—áŠO‚ª—ˆ‚È‚¢‚Á‚ÄŽ–‚¾ (“–‚½‚è‘O‚ÌŽ–‚¾‚¯‚Ç) ‚ÅAPromise‚Ìꇂ͌ĂÑo‚µ‘¤‚ªƒGƒ‰[ˆ—‚à‚µ‚ĂȂ¢ê‡‚Å‚àA
32 –¼‘OFƒfƒoƒbƒK‚ª‹C‚ðŒø‚©‚¹‚Ä—áŠO‚ðã‚°‚Ä‚‚ê‚é‚Á‚Ä‚¾‚¯‚¾ ‚ÜA”–XŠ´‚¢‚Ă邯Žv‚¤‚ªA‰´‚Í‚¸‚Á‚ƃuƒ‰ƒEƒUŽÀ‘•‚ÌŽ–‚ðŒ¾‚Á‚Ä‚¢‚½c ‚µ‚©‚µPromise‚ª–ž‚½‚·‚ׂ«ˆê”Ê“I‚È“®ìŽd—l‚ðŒ¾‚Á‚Ă邂à‚è‚ł͂ ‚é [] [‚±‚±‰ó‚ê‚Ă܂·]
33 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 02:35:21.46 ID:NffMCEWR.net] >>30 > ‚»‚ꂪJavaScript‚ÅŽÀ‘•o—ˆ‚È‚¢Ž–‚ð‚µ‚Ä‚é‚±‚Æ‚¶‚á‚È‚‚ÄH node‚Å‚Ív8‚̃}ƒCƒNƒƒ^ƒXƒNƒLƒ…[‚àsetImmediate()‚ànode‚̃Cƒxƒ“ƒgƒ‹[ƒv‚ň—‚³‚ê‚é‚͓̂¯‚¶‚Á‚ĈӖ¡‚È ‚‚܂èJS‚ÌsetImmediate()‚ŃR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ɂł«‚é‚Á‚Ä‚±‚Æ ‚±‚ê‚̓uƒ‰ƒEƒU‚Å‚à“¯‚¶‚Í‚¸‚¾ ˆá‚¤‚È‚çuƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚È——R‚ð‹ï‘Ì“I‚É‘‚¢‚Ä‚‚ê > ŒÄ‚Ño‚µ‘¤‚É—áŠO‚ª—ˆ‚È‚¢‚Á‚ÄŽ–‚¾ (“–‚½‚è‘O‚ÌŽ–‚¾‚¯‚Ç) ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŽÀ‘•ˆË‘¶‚ł͂ ‚邪Anode‚ł͓–‚½‚è‘O‚¶‚á‚È‚¢ node‚ł͗áŠO‚ð‘æ1ˆø”‚Æ‚µ‚ăR[ƒ‹ƒoƒbƒN‚·‚邱‚ƂŌĂÑo‚µ‘¤‚É—áŠO‚ð“`‚¦‚é‚Ì‚ª—¬‹V‚¾ ‚¾‚©‚çPromise‚Ånode‚ÌAPI‚⃉ƒCƒuƒ‰ƒŠ‚ðƒ‰ƒbƒv‚µ‚Ä‚àPromise.catch()‚É—áŠO‚ª“n‚é (ƒ‰ƒbƒp[‚̓R[ƒ‹ƒoƒbƒN‚Ì‘æ1ˆø”‚É—áŠO‚ª“n‚³‚ꂽ‚çPromise.reject()‚ðŒÄ‚Ño‚·) >>21 ‚ðŒ©‚Ä‚©‚ç”–X‚¶‚á‚È‚ŠmM‚µ‚Ä‚¢‚½
34 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 02:54:15.95 ID:kuXg+7pG.net] >>31 > ˆá‚¤‚È‚çuƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚È——R‚ð‹ï‘Ì“I‚É‘‚¢‚Ä‚‚ê setImmediate()‚ªƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚Éo—ˆ‚é‚Á‚Ä‚¢‚¤Žd—l‚ł͂Ȃ¢‚¾‚ë ŠmŽÀ‚É”ñ“¯Šú‚Á‚ĈӖ¡‚Í setImmediate(function callback() { }); a += 1;‚Ý‚½‚¢‚ȂȂñ‚ç‚©‚̈— ©‚±‚ꂪŽÀs‚³‚ê‚é‘O‚Écallback‚ªâ‘ÎŽÀs‚³‚ê‚È‚¢ ‚±‚Æ‚ð•ÛØ‚µ‚Ä‚ñ‚ÌH ‚»‚à‚»‚à”ñ•W€‚ÌAPI‚È‚ñ‚¾‚¯‚Çc > ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŽÀ‘•ˆË‘¶‚ł͂ ‚邪Anode‚ł͓–‚½‚è‘O‚¶‚á‚È‚¢ Q‚Æ‚©Bluebird‚Ý‚½‚¢‚ÉŽ©‘O‚ÅŽÀ‘•‚·‚邯—áŠO‚ªˆù‚Ü‚ê‚é‚Á‚Ęb‚µ‚¶‚á‚È‚©‚Á‚½‚Ì‚©c Promise‚ÌŽÀ‘•‚ð”M•Ù‚µ‚Ă邯‚ÇA‚Æ‚è‚ ‚¦‚¸‚»‚¤‚¢‚¤Ž–‚Å‚¢‚¢‚æ
35 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 03:42:19.87 ID:NffMCEWR.net] >>32 > ‚±‚ꂪŽÀs‚³‚ê‚é‘O‚Écallback‚ªâ‘ÎŽÀs‚³‚ê‚È‚¢ ‚±‚Æ‚ð•ÛØ‚µ‚Ä‚ñ‚ÌH Žd—l‚Í‚»‚¤‚È‚Á‚Ä‚é https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html > ‚»‚à‚»‚à”ñ•W€‚ÌAPI‚È‚ñ‚¾‚¯‚Çc ‚»‚±‚Í‚±‚ÌNotes‚É‘‚¢‚Ä‚ ‚é"platform code"‚©‚çD‚«‚È‚à‚̂ɒu‚«Š·‚¦‚Ä‚‚ê https://github.com/promises-aplus/promises-spec > Q‚Æ‚©Bluebird‚Ý‚½‚¢‚ÉŽ©‘O‚ÅŽÀ‘•‚·‚邯—áŠO‚ªˆù‚Ü‚ê‚é‚Á‚Ęb‚µ‚¶‚á‚È‚©‚Á‚½‚Ì‚©c >>23 i‚±‚ê‚͉´‚Ƃ͕Êlj‚©‚ç‚Íu‚»‚êPromiseŽg‚í‚È‚‚Ä‚à‚Å‚«‚邿v‚Á‚Ęb‚ð‚µ‚Ä‚é‚È ‚»‚ê‚Í“–‘RJS‚Å‘‚©‚ꂽQ‚âBluebird‚Å‚à‚Å‚«‚é‚Á‚Ä‚±‚Æ‚¾‚©‚猳‚̘b‚ƈá‚Á‚Ä‚é‚킯‚ł͂Ȃ¢AƒXƒR[ƒv‚ªL‚ª‚Á‚½‚¾‚¯ ‚ÅAQ‚Æ‚©Bluebird‚¾‚Æ—áŠO‚ªˆù‚Ýž‚Ü‚ê‚é‚킯HƒR[ƒh‚ÅŽ¦‚¹‚éH
36 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 04:38:34.06 ID:kuXg+7pG.net] >>33 > Žd—l‚Í‚»‚¤‚È‚Á‚Ä‚é Schedules to run handler immediately after user agent events have been flushed. user agent events‚Á‚ĂȂñ‚¾H a += 1;‚ÌŽÀs‚ªI‚í‚Á‚Ä‚©‚ç‚Æ‚ÍŒ¾‚Á‚ĂȂ¢‚ÆŽv‚¤‚ª > ‚»‚±‚Í‚±‚ÌNotes‚É‘‚¢‚Ä‚ ‚é"platform code"‚©‚çD‚«‚È‚à‚̂ɒu‚«Š·‚¦‚Ä‚‚ê ’u‚«Š·‚¦‚ĉ½‚¾‚æH platform code(—v‚·‚é‚ÉJavaScript‚łȂ¢ƒR[ƒh)‚ðŽÀs‚µ‚ë‚Æ‚í‚´‚í‚´‘‚¢‚Ä‚é > ˆá‚¤‚È‚çuƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚È——R‚ð‹ï‘Ì“I‚É‘‚¢‚Ä‚‚ê Œ³‚ÌŽ¿–â‚ͪ‚±‚êA‚¨‘O‚͘_“_‚ð‚¸‚ç‚»‚¤‚Æ‚µ‚Ă邾‚¯‚¾‚È > ‚ÅAQ‚Æ‚©Bluebird‚¾‚Æ—áŠO‚ªˆù‚Ýž‚Ü‚ê‚é‚킯HƒR[ƒh‚ÅŽ¦‚¹‚éH ‚¨‘O–°‚¢‚Ì‚©w ‰´‚Í‚à‚¤‚à‚¿‚»‚¤‚à‚È‚¢‚ª >>30 ‚̉º‚Ì•û‚ÅŒ¾‚Á‚Ă邿
37 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 14:15:40.27 ID:DzK37a2V.net] https://twitter.com/msdev/status/551558635198099457/photo/1 ‚à‚µ1995”N‚Énode.js‚ª‚ ‚Á‚½‚ç
38 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 14:59:18.44 ID:x8qIKDC6.net] “ü‚ê‘Ö‚¦‚ñ‚Ì‚ª‚ƂÂà‚È‚¢ƒ{ƒgƒ‹ƒlƒbƒN‚â‚È
39 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 16:12:14.10 ID:HFKhuxk5.net] ‚±‚ñ‚ȓ‚¢‹c˜_—‰ð‚Å‚«‚È‚¢‚Æ ãY—í‚ȃR[ƒh‘‚¯‚È‚¢Žž“_‚Ål‹Co‚È‚¢‚¾‚낤‚Ë
40 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 16:24:29.87 ID:l0Z2uGSM.net] ‚»‚ñ‚ȓ‚¢˜b‚©‚ŸH
41 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 16:39:24.09 ID:w2TCoU2v.net] >>35 ‚»‚¢‚‚ªƒAƒz‚È‚¾‚¯
42 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 16:44:05.85 ID:CtgO5+tK.net] >>39 ÈÀÆÏ¼ÞÚ½¶ºÜÙ²
43 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 16:57:31.37 ID:2KBXdzj3.net] ‚»‚Ì ‚É‚Í‚à‚¤MPC‹KŠi‚ª•‹y‚µ‚Ä CD-ROMƒhƒ‰ƒCƒu‚ª•
44 –¼‘OFW€‚ł‚¢‚Ă邯‚¢‚¤‚Ì‚É(TOWNSƒ†[ƒU[•À‚ÌŠ´‘z [] [‚±‚±‰ó‚ê‚Ă܂·]
45 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 17:40:22.84 ID:NffMCEWR.net] >>37-38 ‹Zp“I‚ɓ‚¢˜b‚Í‚µ‚ĂȂ¢‚ªA‚±‚¤‚¢‚¤ê‚ʼnï˜b‚𬗧‚³‚¹‚é‚͓̂‚¢‚Èw ‚Å‚«‚ê‚Î’N‚© ID:kuXg+7pG ‚ÌŽå’£‚ð–|–󂵂ė~‚µ‚¢
46 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 18:06:08.86 ID:NffMCEWR.net] >>34 > a += 1;‚ÌŽÀs‚ªI‚í‚Á‚Ä‚©‚ç‚Æ‚ÍŒ¾‚Á‚ĂȂ¢‚ÆŽv‚¤‚ª "5 Processing Model"‚Ì4‚ÉA5ˆÈ~‚Í”ñ“¯Šú‚ÉŽÀs‚·‚邯‘‚¢‚Ä‚ ‚é > ’u‚«Š·‚¦‚ĉ½‚¾‚æH ‚¨‘O‚ªŽg‚Á‚Ä‚éƒuƒ‰ƒEƒU‚ɇ‚킹‚ēǂݑւ¦‚ë‚Æ‚¢‚¤‚¾‚¯‚¾ ƒT[ƒoƒTƒCƒhJSƒXƒŒ‚Æ‚µ‚Ä‚Ínode‚ÅŽg‚¦‚éprocess.nextTick()‚âsetImmediate()‚ʼn½‚Ì–â‘è‚à‚È‚¢ > platform code(—v‚·‚é‚ÉJavaScript‚łȂ¢ƒR[ƒh)‚ðŽÀs‚µ‚ë‚Æ‚í‚´‚í‚´‘‚¢‚Ä‚é "paltform code"‚̓vƒ‰ƒbƒgƒtƒH[ƒ€‚²‚ƂɈقȂéƒR[ƒh‚Æ‚¢‚¤ˆÓ–¡‚Å ‚»‚ꂪJS‚ÅŽÀ‘•‚³‚ê‚Ă悤‚ª‚³‚ê‚Ă܂¢‚ª‚Ç‚¤‚Å‚à‚¢‚¢ ŽÀ‚̂Ƃ±‚ënode‚ÌsetImmediate()‚ÍJS‚ÅŽÀ‘•‚³‚ê‚Ä‚¢‚é https://github.com/joyent/node/blob/v0.10/lib/timers.js#L361 > > ˆá‚¤‚È‚çuƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚È——R‚ð‹ï‘Ì“I‚É‘‚¢‚Ä‚‚ê > Œ³‚ÌŽ¿–â‚ͪ‚±‚êA‚¨‘O‚͘_“_‚ð‚¸‚ç‚»‚¤‚Æ‚µ‚Ă邾‚¯‚¾‚È ‚¢‚Ý‚Ó uƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚Ì‘ÎÛ‚ÍPromise‚»‚Ì‚à‚̂̎À‘•‚¾ Promise‚ÌŽÀ‘•‚ªŒÄ‚Ño‚·API‚̘b‚¶‚á‚È‚¢ ustring‚̓uƒ‰ƒEƒU‚ÅŽÀ‘•‚³‚ê‚Ä‚¢‚év‚ð——R‚Éustring‚ðŽg‚¤‚̂̓uƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚Á‚Ä‚¨‚©‚µ‚¢‚¾‚ëH "platform code"‚ªƒuƒ‰ƒEƒU‚ânode‚ÅŽÀ‘•‚³‚ê‚Ä‚¢‚Ä‚àA‚»‚ê‚ðŽg‚¤ƒR[ƒh‚ÍJS‚Å‘‚¯‚é ‚½‚Æ‚¦‚ÎQ‚Í‚±‚̕ӂÅ"platform code"‚ðŒÄ‚Ñ•ª‚¯‚Ä‚é (ƒ‚ƒ_ƒ“ƒuƒ‰ƒEƒU‚¾‚ÆpostMessage()‚ªŽg‚í‚ê‚Ä‚é‚È) https://github.com/kriskowal/q/blob/v1/q.js#L160 ‚±‚ê‚Íuƒuƒ‰ƒEƒU‚ª“à•”‚ÅŽÀ‘•‚µ‚È‚¢‚Æ–³—v‚ł͂Ȃ•’Ê‚ÌJS‚̃R[ƒh‚¾
47 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 18:08:08.79 ID:NffMCEWR.net] >>34 > >>30 ‚̉º‚Ì•û‚ÅŒ¾‚Á‚Ă邿 ˜b‚ªƒ‹[ƒv‚µ‚Ä‚é‚Èc ‚»‚Ì>>30 ‚̈ȉº‚ɂ‚¢‚Ä > Promise‚ÉŒÀ‚Á‚½˜b‚µ‚¶‚á‚È‚¢‚ªAƒ‰ƒCƒuƒ‰ƒŠ“à‚Åtry,catch‚µ‚¿‚á‚Á‚Ă邯 > ŒÄ‚Ño‚µ‘¤‚É—áŠO‚ª—ˆ‚È‚¢‚Á‚ÄŽ–‚¾ (“–‚½‚è‘O‚ÌŽ–‚¾‚¯‚Ç) ‚±‚ê‚ÍPromise‚ðŽÀ‘•‚·‚éQ‚̂悤‚ȃ‰ƒCƒuƒ‰ƒŠ‘¤‚̘b‚¾‚æ‚ÈH ƒ‰ƒCƒuƒ‰ƒŠ‘¤‚ªcatch‚µ‚½—áŠO‚ðˆù‚Ýž‚ñ‚Ŏ̂Ă½ê‡‚ÍŠm‚©‚É‚»‚¤‚¾‚ªA Q‚âBluebird‚͈ù‚Ýž‚Ü‚¸‚ÉPromise.catch()‚É’Ê’m‚·‚邾‚ë Promise‚ðŽg‚í‚È‚¢ê‡‚Å‚ànode‚Ì—¬‹V‚È‚çƒR[ƒ‹ƒoƒbƒN‚Ì‘æ1ˆø”‚Å’Ê’m‚·‚é ‚¾‚©‚炱‚ê‚Íuƒuƒ‰ƒEƒU“à‘ ‚ÌPromise‚ÍJavaScript‚ÅŽÀ‘•o—ˆ‚È‚¢Ž–‚ð‚µ‚Ä‚év‚ÉŠY“–‚µ‚È‚¢ ‚Á‚Ä‚¢‚¤‚Ì‚ª>>31 ‚Å‘‚¢‚½‚±‚Æ‚¾ ‚»‚ê‚ɑ΂µ‚Ä>>32 ‚Å > Q‚Æ‚©Bluebird‚Ý‚½‚¢‚ÉŽ©‘O‚ÅŽÀ‘•‚·‚邯—áŠO‚ªˆù‚Ü‚ê‚é‚Á‚Ęb‚µ‚¶‚á‚È‚©‚Á‚½‚Ì‚©c ‚ƕԂ³‚ꂽ‚킯‚¾‚ªA‘Oq‚Ì’Ê‚èˆù‚Ýž‚Ü‚¸‚ÉPromise.catch()‚Å’Ê’m‚³‚ê‚é‚Í‚¸‚¾‚©‚ç ‚»‚¤‚¶‚á‚È‚¢‚Á‚Ä‚¢‚¤‚È‚ç > ‚ÅAQ‚Æ‚©Bluebird‚¾‚Æ—áŠO‚ªˆù‚Ýž‚Ü‚ê‚é‚킯HƒR[ƒh‚ÅŽ¦‚¹‚éH ‚Æ>>33 ‚Åq‚Ë‚½‚킯‚¾ ‚»‚̕Ԏ–‚ª>>34 ‚Ìu>>30 ‚̉º‚Ì•û‚ÅŒ¾‚Á‚Ă邿v‚¾‚ÆŠ®‘S‚Ƀ‹[ƒv ‚Ü‚¸‚ÍŠm”F‚¾‚ªA EQ‚Æ‚©Bluebird‚ł͗áŠO‚ªˆù‚Ü‚ê‚é ‚Á‚ÄŽå’£‚µ‚Ä‚é‚ñ‚¾‚æ‚ÈH ‚»‚ê‚È‚ç‚Ç‚¤‚¢‚¤ƒP[ƒX‚Å‚»‚¤‚È‚é‚Ì‚©—á‚ðŽ¦‚µ‚Ä‚‚ê Promise.catch()‚É“`‚í‚ç‚È‚¢ƒP[ƒX‚ª‚à‚µ‚ ‚é‚È‚çA‚¨‚»‚ç‚‚»‚ê‚Í‚½‚¾‚̃oƒO‚¾
48 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/04(“ú) 19:14:35.42 ID:w9Cj0tkO.net] Javascript‚ÆPHP‚Å‚¾‚¢‚½‚¢‚Ì‚±‚Ƃ̓Jƒo[‰Â”\‚Æ‚¢‚¤”Fޝ‚Å‚¨‚‹‚Å‚µ‚傤‚©H
49 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 19:32:10.48 ID:zyY9pL0A.net] MySQL‚©SQLite‚à—~‚µ‚¢
50 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 20:18:20.57 ID:w9Cj0tkO.net] ‚â‚Í‚èMySQL‚ª‚È‚¢‚ƕЎ藎‚¿‚Ȃ̂ł·‚Ë ‚Ç‚¤‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
51 –¼‘OF23 mailto:sage [2015/01/04(“ú) 20:31:31.22 ID:LcMrfHes.net] >>34 ,43 >Schedules to run handler immediately after user agent events have been flushed. >user agent events‚Á‚ĂȂñ‚¾H ‚±‚±‚ÅŒ¾‚Á‚Ä‚¢‚éuser agent events‚ÍHTML—v‘f‚Ìon`‘®«‚ÉŽw’肵‚½ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰ŠÖ”‚Ý‚½‚¢‚¾‚ËB 1Í‚ÌIntroduction‚Åuuser agent events‚Ì’†‚ʼnæ–Ê‚ð‘‚«Š·‚¦‚邿‚¤‚Ȉ—‚ð‘‚¢‚ÄA ‚»‚ÌŒã‚̈—‚ðs‚¤‘O‚É‚»‚Ì•ÏX‚ð‰æ–Ê‚É”½‰f‚³‚¹‚½‚¢‚Æ‚«‚ÉA¡‚܂łÍsetTimeout(fn,0)‚ð Žg‚Á‚Ä‚½‚¾‚낤‚¯‚ÇA‚»‚ꂾ‚Æ’x‰„‚ª”¶‚·‚é‚©‚çsetImmediate‚ăƒ\ƒbƒh‚ð’è‹`‚·‚邿v ‚Á‚ĂȊ´‚¶‚Ì‚±‚Æ‚ª‘‚¢‚Ä‚ ‚éB >> ‚»‚±‚Í‚±‚ÌNotes‚É‘‚¢‚Ä‚ ‚é"platform code"‚©‚çD‚«‚È‚à‚̂ɒu‚«Š·‚¦‚Ä‚‚ê >’u‚«Š·‚¦‚ĉ½‚¾‚æH Notes ‚Ì‹Lq‚ÉA This can be implemented with either a "macro-task" mechanism such as setTimeout or setImmediate, or with a "micro-task" mechanism such as MutationObserver or process.nextTick. u‚±‚ê‚ÍAsetTimeout,‚âsetImmediate (hƒ}ƒNƒƒ^ƒXƒNh‹@\jA‚Ü‚½‚ÍMutationObserver‚âprocess.nextTick i"ƒ}ƒCƒNƒƒ^ƒXƒN"‹@\j‚ðŽg‚Á‚Ä‚àŽÀ‘•‚Å‚«‚邿v ‚Á‚Ä‘‚¢‚Ä‚ ‚é‚ËB‚±‚Ì’†‚̂ǂê‚ðŽg‚Á‚Ä’u‚«Š·‚¦‚Ä‚àŽÀŒ»‚Å‚«‚邯‚¢‚¤‚±‚Æ‚¾‚ËB —áŠOˆ—‚ɂ‚¢‚Ä‚à>>44 ‚Ì’Ê‚è‚ÅA‚»‚êˆÈã‚ÉŒ¾‚¤‚ׂ«‚±‚Ƃ͂Ȃ¢‚©‚ÈB ‚½‚¾ƒfƒoƒbƒK‚Æ‚©ƒuƒŒ[ƒNƒ|ƒCƒ“ƒg‚Æ‚©‚ÌŒ¾—t‚ªo‚Ä‚¢‚½‚©‚çA •K—vˆÈã‚ɓ‚l‚¦‚Ä‚¢‚½‚ñ‚¶‚á‚È‚¢‚©‚Æ‚¢‚¤‹C‚ª‚µ‚È‚¢‚Å‚à‚È‚¢B
52 –¼‘OF23 mailto:sage [2015/01/04(“ú) 20:43:54.20 ID:LcMrfHes.net] >>43 >‚½‚Æ‚¦‚ÎQ‚Í‚±‚̕ӂÅ"platform code"‚ðŒÄ‚Ñ•ª‚¯‚Ä‚é (ƒ‚ƒ_ƒ“ƒuƒ‰ƒEƒU‚¾‚ÆpostMessage()‚ªŽg‚í‚ê‚Ä‚é‚È) MessageChannel ’m‚ç‚ñ‚©‚Á‚½BBB node.js ‚Å‚Í process.nextTickAƒuƒ‰ƒEƒU‚Å‚Í setTimeout ‚ÆŽg‚¢•ª‚¯‚邾‚¯‚¾‚Á‚½‚æB •׋‚ɂȂÁ‚½AƒTƒ“ƒNƒXB
53 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 20:59:25.50 ID:CtgO5+tK.net] >>44 > Promise‚ðŽg‚í‚È‚¢ê‡‚Å‚ànode‚Ì—¬‹V‚È‚çƒR[ƒ‹ƒoƒbƒN‚Ì‘æ1ˆø”‚Å’Ê’m‚·‚é ’Ê’m‚µ‚Ä‚àŒÄ‚Ño‚µ‘¤‚ªƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ«‚áˆÓ–¡‚È‚¢‚¾‚ë •Ê‚Éƒnƒ“ƒhƒŠƒ“ƒO‚µ‚½‚«‚árejectj‚ðƒnƒ“ƒhƒŠƒ“ƒO‚·‚è‚á‚¢‚¢‚ñ‚¾‚æAƒAƒz‚© ‚Ü‚Á‚½‚ƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠO‚Å‚à“à‘ Promise‚È‚çƒfƒoƒbƒK‚ª ‹C‚ðŒø‚©‚¹‚Ä—áŠO‚ð’Ê’m‚µ‚Ä‚‚ê‚é‚Á‚ÄŽ–‚ðŒ¾‚Á‚Ä‚ñ‚Ì‚É ‚¨‘O‚͂Ȃñ‚Å•ª‚©‚ñ‚È‚¢‚ñ‚¾‚æƒ}ƒW‚Å–³”\‚¾‚È
54 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 21:02:03.05 ID:CtgO5+tK.net] >>44 ‚¨‘O‚ªPromiseŽg‚Á‚ăvƒƒOƒ‰ƒ€‚È‚ñ‚©‚µ‚½Ž–‚È‚¢ƒh‘fl‚Ȃ͕̂ª‚©‚Á‚½‚æ ‚¶‚á‚È‚«‚áA‚»‚ñ‚ÈŽ–Œ¾‚¤–ó‚È‚¢‚µ •’ʂ͂»‚¤‚¾‚ËA‚ÅI‚í‚é˜b‚µ‚ðAƒhƒAƒz‚Ì‚¨‘O‚ªƒoƒJ‚Ý‚½‚¢‚ɓ˂Á‚±‚ñ‚ł邾‚¯‚Ȃ̂ð ƒIƒŒ‚ª‰É‚¾‚©‚瑊Žè‚µ‚Ă邾‚¯‚¾‚æ
55 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 22:08:03.31 ID:NffMCEWR.net] ‰É‚È‚ç‚à‚¤‚µ‘ŠŽè‚µ‚Ä‚à‚炨‚¤‚© ‚Ü‚¸ > E“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ÅŽÀs‚·‚é ‚±‚ꂪJS‚ÅŽÀ‘•‚Å‚«‚È‚¢‚Á‚ÄŽå’£‚͊ԈႢ‚¾‚Á‚½‚Æ‚¢‚¤‚±‚Ƃł¢‚¢‚Ì‚©H ŽŸ‚É > Eˆù‚Ýž‚܂ꂽ—áŠO‚ðƒfƒoƒbƒOo—ˆ‚é u‚Ü‚Á‚½‚ƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠOv‚ðƒfƒoƒbƒO‚Å‚«‚é‚Ì‚Í“à‘ PromiseŠÖŒW‚È‚ JSˆ—Œn(Chrome‚È‚çv8)‚̃fƒoƒbƒK‚Ì‹@”\‚¾‚ë node‚Å‚àv8‚̃fƒoƒbƒK‚Í—LŒø‚¾‚©‚çnode debug x.js‚ÅŽÀs‚µ‚ÄbreakOnException‚µ‚Ä‚¨‚¯‚Î u‚Ü‚Á‚½‚ƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠOv‚ŃuƒŒ[ƒN‚·‚é node‚Íprocess.on('uncaughtException')‚ª‚ ‚é‚©‚ç‚»‚ê‚ŃfƒoƒbƒKŽg‚¤‹@‰ï‚͂Ȃ¢‚¯‚Ç‚È ‚¾‚ª‚±‚̘bƒ}ƒW‚ÅPromiseŠÖŒW‚È‚‚ËH ‚‚©uƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—áŠOv‚łȂuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢reject (uncaught promise rejections)v ‚̃fƒoƒbƒO‚ðŒ¾‚Á‚Ä‚é‚Ì‚©H ‚¾‚Æ‚·‚邯‘S‘R˜b‚ªˆá‚¤‚ªAdebugger•¶‚ðŽg‚¦‚Î“à‘ Promise‚¶‚á‚È‚‚Ä‚àŽÀ‘•‚͂ł«‚é‚È > ‚¨‘O‚͂Ȃñ‚Å•ª‚©‚ñ‚È‚¢‚ñ‚¾‚æƒ}ƒW‚Å–³”\‚¾‚È ‚¨‘OˆÈŠO’N‚à‚¨‘O‚ÌŒ¾‚Á‚Ă邱‚Æ‚ð—‰ð‚Å‚«‚ĂȂ¢‚ñ‚¶‚á‚È‚¢‚©Hw ‚Å‚«‚Ä‚él‚ª‚¢‚é‚È‚çƒ}ƒW‚Å–|–󂵂Ă‚ê ‚ ‚Ɖ´‚ÍECMA“ü‚è‘O‚ðŠÜ‚߂邯2012”N ‚©‚çPromiseŽg‚Á‚Ä‚é ‚½‚¾‚µnode‚ł̘b‚¾‚©‚çƒuƒ‰ƒEƒUŒÅ—L‚̘b‚Í’m‚ç‚È‚¢‰Â”\«‚Í‚‚¢ ‚±‚±‚̓T[ƒoƒTƒCƒhJSƒXƒŒ‚È‚ñ‚¾‚©‚ç‚»‚̕ӂ͂¨‘O‚Ì•û‚ªl—¶‚µ‚Ä‚‚ê
56 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 22:36:38.77 ID:NffMCEWR.net] ‚¹‚Á‚©‚‚Ȃ̂ŋï‘Ì“I‚É ‚±‚¤‚¢‚¤ƒR[ƒh(x.js)‚ª‚ ‚邯‚·‚é‚¶‚á‚ë process.nextTick(function() { @throw new Error('unhandle'); }); ‚±‚¤‚â‚Á‚ÄŽÀs‚·‚é‚¶‚á‚ë $ node debug x.js < Debugger listening on port 5858 connecting to port 5858... ok break in x.js:1 > 1 process.nextTick(function() { @2 throw new Error('unhandle'); @3 }); 1s–Ú‚ÅŽ~‚Ü‚Á‚Ă邩‚炨‚Ü‚¶‚È‚¢‚𥂦‚é‚¶‚á‚ë debug> breakOnException ŽÀsÄŠJ‚·‚é‚¶‚á‚ë debug> c exception in x.js:2 Error: unhandle @1 process.nextTick(function() { > 2 throw new Error('unhandle'); @3 }); debug> ƒnƒ“ƒhƒ‹‚³‚ê‚ĂȂ¢—áŠO‚Ì‚¹‚¢‚Å2s–Ú‚ÅŽ~‚Ü‚Á‚½‚¶‚á‚ë
57 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/04(“ú) 23:45:19.91 ID:NffMCEWR.net] ‚Æ‚±‚ë‚Åuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢rejectv‚̃fƒoƒbƒO‚Á‚Ä ÅV‚̃uƒ‰ƒEƒU‚ł̓Tƒ|[ƒg‚³‚ê‚Ä‚é‚Ì‚©H ‚½‚Æ‚¦‚Î Promise.resolve(true).then(function(v) { @throw new Error('then'); }).catch(function(e) { @console.log(e); }); ‚ÆÅŒã‚Écatch()‚·‚ׂ«‚Æ‚±‚ë‚ð–Y‚ê‚Ä‚µ‚Ü‚Á‚Ä Promise.resolve(true).then(function(v) { @throw new Error('then'); }); ‚Æ‚µ‚½ê‡A‚±‚ê‚ðChromeˆÀ’è”Å(39)‚ÅŽÀs‚µ‚Ä‚àƒuƒŒ[ƒN‚µ‚È‚¢ ƒXƒ[‚µ‚½—áŠO‚Í“à‘ Promise‚ÌŽÀ‘•‚Åcatch‚µ‚Ă邩‚çv8‚©‚猩‚邯 ƒnƒ“ƒhƒ‹‚³‚ê‚Ä‚é‚Á‚Ĉµ‚¢‚È‚ñ‚¾‚낤 ChromeŠJ””ł⑼‚̃uƒ‰ƒEƒU‚¾‚ƃuƒŒ[ƒN‚·‚é‚Ì‚©H
58 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 09:46:01.36 ID:mZODWVt6.net] >>50 ‰¡‚©‚玸—çA‰´‚à“Ç‚ñ‚łĈӖ¡‚í‚©‚ç‚È‚¢‚©‚玿–₳‚¹‚Ä‚‚ê „‚Ü‚Á‚½‚ƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠO‚Å‚à“à‘ Promise‚È‚çƒfƒoƒbƒK‚ª „‹C‚ðŒø‚©‚¹‚Ä—áŠO‚ð’Ê’m‚µ‚Ä‚‚ê‚é‚Á‚ÄŽ–‚ðŒ¾‚Á‚Ä‚ñ‚Ì‚É „‚¨‘O‚͂Ȃñ‚Å•ª‚©‚ñ‚È‚¢‚ñ‚¾‚æƒ}ƒW‚Å–³”\‚¾‚È “à‘ŸPromise‚Ì—˜“_‚̓fƒoƒbƒK‚ª‹C‚𗘂©‚¹‚Ä—áŠO’Ê’m‚ð‚µ‚Ä‚‚ê‚éA‚Ɠǂ߂é‚ñ‚¾‚¯‚ÇA‚‚܂軕i‚ÉŽg‚¤‚ÆŸŽè‚ɃfƒoƒbƒK‚ª“®‚¢‚Ä‚éó‘ԂɂȂ邩‚çŠJ”ŽžˆÈŠO‚ÍŽg‚Á‚¿‚á‚¢‚¯‚È‚¢‚Á‚ÄŽ–‚ÅOKH ‚»‚ê‚Æ‚àPromise‚ɂ͉½‚ç‚©‚̃fƒoƒbƒK‚ª“à‘Ÿ‚³‚ê‚Ä‚¢‚銴‚¶‚Ȃ̂©‚ÈH‚à‚µ‚»‚¤‚¾‚Æ‚µ‚ÄAƒfƒoƒbƒK‚ª“®ì‚µ‚Ă邱‚Æ‚ð‘O’ñ‚ŃR[ƒh‚ð‘g‚Þ‚Ì‚ªPromise‚ÌŽg‚¢•û‚Á‚ÄŽ–H ‚à‚µ‘OŽÒ‚È‚ç(“Á‚É«—ˆ“I‚É)Žd—l‚ª‚Ç‚¤‚Ȃ邩‚͊‹«ˆË‘¶‚Á‚ÄŽ–‚ɂȂ邩‚çAPromise‚ÍŽg‚Á‚Ă͂¢‚¯‚È‚¢‚ñ‚¶‚á‚È‚¢‚¾‚낤‚©H
59 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 12:38:50.48 ID:A9O4oHD7.net] –Ê“|‚¾‚ª‚±‚¤‚È‚Á‚½‚炵‚傤‚ª‚È‚¢‚µ•t‚«‡‚Á‚Ä‚â‚é >>52 > > E“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŠmŽÀ‚É”ñ“¯Šú‚ÅŽÀs‚·‚é > > ‚±‚ꂪJS‚ÅŽÀ‘•‚Å‚«‚È‚¢‚Á‚ÄŽå’£‚͊ԈႢ‚¾‚Á‚½‚Æ‚¢‚¤‚±‚Ƃł¢‚¢‚Ì‚©H setImmediate()‚ÌŽd—l‚ÍA“n‚³‚ꂽƒR[ƒ‹ƒoƒbƒN‚ðŽŸ‚ÌJavaScript‚Ì–½—ß‚ªŠmŽÀ‚ÉŽÀs‚³‚ꂽŒã‚É ŽÀs‚·‚邯‚͓ǂ߂Ȃ©‚Á‚½‚ªA‚à‚µ“à•”‚ÌŽÀ‘•‚ª‚»‚¤‚È‚Á‚Ä‚é‚̂ł ‚ê‚ÎAsetImmediate()‚Å ŽÀ‘•‚Å‚«‚邿 ‚½‚¾‚µA–{“–‚É“à•”‚ÌŽÀ‘•‚ª‚»‚¤‚È‚Á‚Ă邩‚Ç‚¤‚©‚Í‚¨‘O‚ªŠm”F‚µ‚Ä•ñ‚µ‚ë > ChromeŠJ””ł⑼‚̃uƒ‰ƒEƒU‚¾‚ƃuƒŒ[ƒN‚·‚é‚Ì‚©H ’Êí‚ÌChrome‚ÆFirefox‚ŃuƒŒ[ƒN‚·‚é‚Ì‚ðŠm”F‚µ‚½ >>55 > ‚‚܂軕i‚ÉŽg‚¤‚ÆŸŽè‚ɃfƒoƒbƒK‚ª“®‚¢‚Ä‚éó‘ԂɂȂ邩‚çŠJ”ŽžˆÈŠO‚ÍŽg‚Á‚¿‚á‚¢‚¯‚È‚¢‚Á‚ÄŽ–‚ÅOKH ƒfƒoƒbƒK‚Í•’ʂ̃uƒ‰ƒEƒWƒ“ƒOŽž‚ɂ͗LŒø‚ɂȂÁ‚ĂȂ¢‚æ —LŒø‚É‚·‚é‚ɂ̓uƒ‰ƒEƒU‚²‚Ƃɂâ‚è•û‚ªˆá‚¤‚©‚玩•ª‚Å’²‚ׂĂ‚ê
60 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 20:40:46.70 ID:xBMPeqox.net] >56 > ‚½‚¾‚µA–{“–‚É“à•”‚ÌŽÀ‘•‚ª‚»‚¤‚È‚Á‚Ă邩‚Ç‚¤‚©‚Í‚¨‘O‚ªŠm”F‚µ‚Ä•ñ‚µ‚ë process.nextTick()‚àsetImmediate()‚àsetTimeout()‚à‚»‚¤‚È‚Á‚Ă邿 ‚ǂ̊֔‚àreturn‚µ‚Č㑱‚̃R[ƒh‚ªŽÀs‚³‚ê‚ăCƒxƒ“ƒgƒ‹[ƒv‚ɖ߂邿‚è‘O‚É ƒR[ƒ‹ƒoƒbƒN‚ªŒÄ‚΂ê‚邱‚Ƃ͂Ȃ¢ > > ChromeŠJ””ł⑼‚̃uƒ‰ƒEƒU‚¾‚ƃuƒŒ[ƒN‚·‚é‚Ì‚©H > ’Êí‚ÌChrome‚ÆFirefox‚ŃuƒŒ[ƒN‚·‚é‚Ì‚ðŠm”F‚µ‚½ >>54 ‚ªˆø—p‚³‚ê‚Ă邪A‚»‚ê‚Í‚¨‘O‚ÌŒ¾‚¤uƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠOv ‚Ƃ͕ʂÌuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢rejectv‚̘b‚¾‚¼ >>54 ‚̈ês–Ú‚É‚»‚¤‘‚¢‚Ä‚ ‚邾‚ë ‚»‚ê‚æ‚è > ‚Ü‚Á‚½‚ƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—\Šú‚µ‚È‚¢—áŠO‚Å‚à“à‘ Promise‚È‚çƒfƒoƒbƒK‚ª > ‹C‚ðŒø‚©‚¹‚Ä—áŠO‚ð’Ê’m‚µ‚Ä‚‚ê‚é‚Á‚ÄŽ–‚ðŒ¾‚Á‚Ä‚ñ‚Ì‚É ‚ɂ‚¢‚Ä‹ï‘Ì“I‚ɃR[ƒh‚Å‚à‘‚¢‚Äà–¾‚µ‚Ä‚‚ê‚æ “ú–{Œê‚¶‚á‚܂Ƃà‚É’Ê‚¶‚ĂȂ¢‚ñ‚¾‚©‚ç‚»‚Ì•û‚ª‚¨ŒÝ‚¢Žè‚ÁŽæ‚è‘‚¢‚¾‚ëH
61 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 20:47:12.39 ID:xBMPeqox.net] ‚±‚ê‚Íuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢rejectv‚Æ‚µ‚ẴŒƒX >>56 > ’Êí‚ÌChrome‚ÆFirefox‚ŃuƒŒ[ƒN‚·‚é‚Ì‚ðŠm”F‚µ‚½ ‚Ü‚¸‚ÍŠm”F‚¾‚ªAChrome‚Å"Pause On Caught Exceptions"‚ÍŠO‚µ‚Ă邿‚ÈH ‚ ‚ê‚̓nƒ“ƒhƒŠƒ“ƒOu‚µ‚Ä‚év—áŠO‚Å‚àƒuƒŒ[ƒN‚·‚é‚©‚炱‚±‚ł͎ז‚‚É‚È‚é ‚»‚Ìã‚ÅAreject‚ðƒnƒ“ƒhƒŠƒ“ƒO‚µ‚Ä‚¢‚é Promise.resolve(true).then(function(v) { @throw new Error('then'); }).catch(function(e) { @console.log(e); }); ‚̓uƒŒ[ƒN‚µ‚È‚¢‚ªAreject‚ðƒnƒ“ƒhƒŠƒ“ƒO‚µ‚Ä‚¢‚È‚¢ Promise.resolve(true).then(function(v) { @throw new Error('then'); }); ‚̓uƒŒ[ƒN‚·‚é‚Ì‚ðŠm”F‚µ‚½A‚Æ‚¢‚¤‚±‚ƂŊԈႢ‚È‚¢‚©H ‰´‚ÌChrome 39‚ł͂ǂ¿‚ç‚àƒuƒŒ[ƒN‚µ‚È‚¢ (’Êí‚Ìuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢—áŠOv‚Í‚à‚¿‚ë‚ñƒuƒŒ[ƒN‚·‚é) ‚à‚µChrome‚Ìݒ肪•K—v‚Ȃ狳‚¦‚Ä—~‚µ‚¢
62 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 20:56:09.22 ID:xBMPeqox.net] ‚±‚ê‚àuƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢rejectv‚Æ‚µ‚ẴŒƒX —áŠO‚ł͂Ȃreject‚̘b‚Æ‚¢‚¤‚±‚Æ‚ª‚æ‚è–¾Šm‚É‚È‚é‚æ‚¤‚ɃR[ƒh‚ðC³‚µ‚½ reject‚ðƒnƒ“ƒhƒŠƒ“ƒO‚µ‚Ä‚¢‚é Promise.resolve(true).then(function(v) { @return Promise.reject(new Error('then')); }).catch(function(e) { @console.log(e); }); ‚̓uƒŒ[ƒN‚µ‚È‚¢‚ªAreject‚ðƒnƒ“ƒhƒŠƒ“ƒO‚µ‚Ä‚¢‚È‚¢ Promise.resolve(true).then(function(v) { @return Promise.reject(new Error('then')); }); ‚̓uƒŒ[ƒN‚·‚é‚Ì‚©H ‚¿‚Ȃ݂ÉQ‚ðŽg‚¤ê‡‚ÍQ.getUnhandledReasons()‚Å uƒnƒ“ƒhƒŠƒ“ƒO‚µ‚ĂȂ¢rejectv‚̈ꗗ‚ðŽæ“¾‚Å‚«‚é node‚Å‚ÍsetInterval()‚Å’èŠú“I‚ɃƒOo—Í‚·‚ê‚΃fƒoƒbƒK‚Ì•K—v«‚Í’á‚¢
63 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 22:13:35.53 ID:gHiAPMtv.net] >>57 > process.nextTick()‚àsetImmediate()‚àsetTimeout()‚à‚»‚¤‚È‚Á‚Ă邿 ’²‚×‚à‚¹‚¸‚É“K“–‚ÈŽ–Œ¾‚¤‚È‚æ ‚È‚‚Æ‚àsetTimeout()‚Íâ‘ΈႤ ‘¼‚Í“ú–{Œê‚ªˆÓ–¡•s–¾ Promise.resolve(true).then(function(v) { @throw new Error('then'); © ‚±‚±‚ŃfƒoƒbƒK‚ªƒuƒŒ[ƒN‚·‚é }); ƒAƒz‚È‚¨‘O‚Í‚±‚ê‚Å‚à—‰ðo—ˆ‚È‚¢‚ÆŽv‚¤‚ªA‰´‚Í‚±‚êˆÈãà–¾‚µ‚È‚¢ > node‚Å‚ÍsetInterval()‚Å’èŠú“I‚ɃƒOo—Í‚·‚ê‚΃fƒoƒbƒK‚Ì•K—v«‚Í’á‚¢ •³‚Ý‚½‚¢‚È•‰‚¯É‚µ‚Ý‚·‚ñ‚È‚æw
64 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 22:22:33.23 ID:gHiAPMtv.net] > ‚È‚‚Æ‚àsetTimeout()‚Íâ‘ΈႤ •ß‘¨‚·‚邪ƒ^ƒCƒ€ƒAƒEƒgŽžŠÔ‚ð1ms‚Æ‚©‚É‚·‚ê‚ÎA99.9%ŽÀ—pã–â‘è–³‚¢‚¾‚낤 ‚¾‚ªuŠmŽÀv‚É”ñ“¯Šú‚É‚·‚邯‚¢‚¤Ž–‚Ƃ͑S‚ˆÓ–¡‚ªˆá‚¤ >>58 > ‚à‚µChrome‚Ìݒ肪•K—v‚Ȃ狳‚¦‚Ä—~‚µ‚¢ ƒfƒoƒbƒK‚̃fƒtƒHÝ’è‚ł͈ù‚Ýž‚Ü‚ê‚Ä–³”½‰ž‚¾ ‚³‚ñ‚´‚ñƒPƒ`‚‚¯‚Ă銄‚ɂ͂»‚ñ‚ÈŠÈ’P‚ÈÝ’è‚à•ª‚©‚ç‚ñ‚© ‚½‚¾AŒƒ‚µ‚ƒXƒŒƒ`‚ÈŽ–‚È‚ñ‚Å–³—‚à‚È‚¢‚©‚ç‚»‚ë‚»‚ë–Ù‚Á‚Ä‚‚ê
65 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:31:48.05 ID:xBMPeqox.net] >>60 > ’²‚×‚à‚¹‚¸‚É“K“–‚ÈŽ–Œ¾‚¤‚È‚æ ’²‚ׂȾ‚Á‚Ă邯‚ÇH ‚Ü‚¸‚ÍŽd—l https://html.spec.whatwg.org/multipage/webappapis.html#timers "timer initialisation steps"‚Ì10‚Å"Return handle, and then continue running this algorithm in parallel." ‚ƂȂÁ‚Ä‚¢‚ÄAƒR[ƒ‹ƒoƒbƒN‚ªŒÄ‚Ño‚³‚ê‚é‚Ì‚Í14‚Ì"Queue the task task."‚É‚æ‚Á‚Ä‚¾ ‚»‚µ‚ÄNode‚ÌŽÀ‘• https://github.com/joyent/node/blob/v0.10/lib/timers.js#L194 203s–Ú‚ÅTimeoutƒIƒuƒWƒFƒNƒg‚ðì‚Á‚Ä225s–Ú‚Åactive()‚É“n‚µ‚Ä‚é 175s–Ú‚©‚ç‚Ìactive()‚ÍƒŠƒXƒg‚ÉTimeoutƒIƒuƒWƒFƒNƒg‚ð’ljÁ‚µ‚Ă邾‚¯ ‚Ç‚¤‚â‚Á‚Ä‚àsetTimeout()‚ªreturn‚·‚é‘O‚ɃR[ƒ‹ƒoƒbƒN‚ªŒÄ‚΂ê‚邱‚Ƃ͂Ȃ¢ > ‚È‚‚Æ‚àsetTimeout()‚Íâ‘ΈႤ ‚»‚̪‹’‚ÍH ‚¨‘O‚ÍŽå’£‚·‚é‚΂Á‚©‚Ū‹’‚͉½‚àŽ¦‚³‚È‚¢‚Ì‚È >>61 > •ß‘¨‚·‚邪ƒ^ƒCƒ€ƒAƒEƒgŽžŠÔ‚ð1ms‚Æ‚©‚É‚·‚ê‚ÎA99.9%ŽÀ—pã–â‘è–³‚¢‚¾‚낤 > ‚¾‚ªuŠmŽÀv‚É”ñ“¯Šú‚É‚·‚邯‚¢‚¤Ž–‚Ƃ͑S‚ˆÓ–¡‚ªˆá‚¤ ‚¨‘Ou”ñ“¯Šúv‚̈Ӗ¡‚í‚©‚Á‚Ä‚éH ƒ^ƒCƒ€ƒAƒEƒgŽžŠÔ‚Í”ñ“¯Šú‚Æ‚ÍˆêØŠÖŒW‚È‚¢‚¼ setTimeout()‚Íí‚ɃR[ƒ‹ƒoƒbƒN‚ð”ñ“¯Šú‚ÉŽÀs‚·‚é ‚½‚¾‚µƒR[ƒ‹ƒoƒbƒN‚ªŽÀs‚³‚ê‚é‚܂ł̎žŠÔ‚ÍŽw’肵‚½‚Æ‚¨‚è‚É‚È‚é‚Æ‚ÍŒÀ‚ç‚È‚¢‚¾‚¯‚¾ “Á‚ɃlƒXƒg‚µ‚½ŒÄ‚Ño‚µ‚Å‚Í0`3ms‚ðŽw’肵‚Ä‚àÅ’á4ms‚͑҂½‚³‚ê‚é(ã‚ÌŽd—l‚É‘‚¢‚Ä‚ ‚é) ‚¾‚ªí‚É”ñ“¯Šú‚¾
66 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:36:20.18 ID:xBMPeqox.net] >>60 > ‘¼‚Í“ú–{Œê‚ªˆÓ–¡•s–¾ ‚¨ŒÝ‚¢‚É‚Èw ‚Å‚àJS‚̃R[ƒh‚Í•ª‚©‚Á‚½‚¾‚ëH ‚¾‚©‚炨‘O‚ªŒ¾‚¢‚½‚¢‚±‚Æ‚àƒR[ƒh‚ÅŽ¦‚µ‚Ä‚‚ê‚Á‚ĉ½“x‚àŒ¾‚Á‚Ä‚é‚킯‚¾ ‚È‚ñ‚ŃR[ƒh‚Å‘‚©‚È‚¢‚ñ‚¾H > Promise.resolve(true).then(function(v) { > @throw new Error('then'); © ‚±‚±‚ŃfƒoƒbƒK‚ªƒuƒŒ[ƒN‚·‚é > }); ‚»‚ꂾ‚¯‚¾‚Æ"Pause On Caught Exceptions"‚ð—LŒø‚É‚µ‚Ă邿‚¤‚É‚µ‚©Œ©‚¦‚È‚¢‚È ‚»‚ÌꇃuƒŒ[ƒN‚·‚é‚Ì‚Í“à‘ PromiseˆêØŠÖŒW‚È‚¢‚©‚ç‚È catch()‚µ‚Ä‚éƒP[ƒX‚ł͂ǂ¤‚È‚ñ‚¾H ƒuƒŒ[ƒN‚µ‚¿‚Ⴄ‚ñ‚¶‚á‚Ë[‚ÌH >>59 ‚ÌPromise.reject()”łłàƒuƒŒ[ƒN‚·‚é‚Ì‚©H ‚µ‚È‚¢‚ñ‚¶‚á‚Ë[‚ÌH > ƒAƒz‚È‚¨‘O‚Í‚±‚ê‚Å‚à—‰ðo—ˆ‚È‚¢‚ÆŽv‚¤‚ªA‰´‚Í‚±‚êˆÈãà–¾‚µ‚È‚¢ ‚»‚ꂱ‚»•‰‚¯É‚µ‚Ý‚¾‚ëw u‚µ‚È‚¢v‚¶‚á‚È‚‚Äu‚Å‚«‚È‚¢v‚ñ‚¶‚á‚Ë[‚ÌH > > node‚Å‚ÍsetInterval()‚Å’èŠú“I‚ɃƒOo—Í‚·‚ê‚΃fƒoƒbƒK‚Ì•K—v«‚Í’á‚¢ > •³‚Ý‚½‚¢‚È•‰‚¯É‚µ‚Ý‚·‚ñ‚È‚æw ŒJ‚è•Ô‚·‚¯‚Ç‚±‚±‚̓T[ƒoƒTƒCƒhJSƒXƒŒ‚È‚ñ‚Å‚È “®‚©‚µ‚Á‚ςȂµ‚̃T[ƒo‚ł̓ƒMƒ“ƒO‚µ‚Ä’²‚ׂé•û‚ªŠî–{‚È‚ñ‚¾‚æ ‚Ô‚Á‚¿‚Ⴏ‚±‚̃XƒŒ‚Å‚àNode‚ŃfƒoƒbƒK•’iŽg‚¢‚µ‚Ă郄ƒc‚Ì•û‚ª””h‚¶‚á‚ËH ‘¼‚Ìl‚Ç‚¤‚æH
67 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:38:49.17 ID:xBMPeqox.net] >>61 > ƒfƒoƒbƒK‚̃fƒtƒHÝ’è‚ł͈ù‚Ýž‚Ü‚ê‚Ä–³”½‰ž‚¾ > ‚³‚ñ‚´‚ñƒPƒ`‚‚¯‚Ă銄‚ɂ͂»‚ñ‚ÈŠÈ’P‚ÈÝ’è‚à•ª‚©‚ç‚ñ‚© ‚í‚©‚ç‚ñ‚È —Š‚Þ‚©‚狳‚¦‚Ä‚‚ê‚æ ø‚邿‚è‚È‚¢•¶Žš”‚ÅI—¹‚·‚邾‚ë > ‚½‚¾AŒƒ‚µ‚ƒXƒŒƒ`‚ÈŽ–‚È‚ñ‚Å–³—‚à‚È‚¢‚©‚ç‚»‚ë‚»‚ë–Ù‚Á‚Ä‚‚ê ‰½‚ð¡Xw >>55 ‚Æ‚©‘¼‚Ìl‚à‹»–¡‚ ‚é‚©‚à‚µ‚ê‚È‚¢‚¾‚ë ‚»‚ñ‚ÈŠÈ’P‚ÈÝ’è‚Ȃ炳‚Á‚³‚Æ‘‚¢‚Ä‚‚ê‚æ
68 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:41:57.54 ID:gHiAPMtv.net] >>62 This API does not guarantee that timers will run exactly on schedule. ‚Á‚Ä‘‚¢‚Ä‚ ‚é ‚¢‚ÂŽÀs‚³‚ê‚é‚©•ÛØ‚µ‚ĂȂ¢‚¶‚á‚ñ ã‚Ì•û‚Ìa += 1;‚ðŽÀs‚·‚é‚܂łÉ100ms‚ÌŽžŠÔ‚ªŠ|‚©‚Á‚½‚Æ‚·‚邯A‚»‚Ì‘O‚ÉŽÀs‚³‚ê‚é‰Â”\«‚ª‚ ‚é
69 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:57:22.85 ID:gHiAPMtv.net] ÌWebkit‚©Firefox‚ÌPromise‚ÌŽÀ‘•‚ðŒ©‚½Žž‚ÉA‚±‚ê‚Å”ñ“¯Šú‚É‚µ‚Ä‚ñ‚Ì‚©‚ÆŽv‚Á‚½Ž–‚ª‚ ‚Á‚½‹C‚ª‚·‚é‚©‚ç ‚Æ‚è‚ ‚¦‚¸ƒ\[ƒX‚ð‚ ‚½‚Á‚½‚݂邩‚ç‘Ò‚Á‚Ä‚ë ‚»‚ê‚Å‘S‚Ä‰ðŒˆ‚¾ ƒ\[ƒX‚𗎂Ƃ·‚ɂ͖Œƒ‹ê’ƒŽžŠÔŠ|‚©‚邵Aƒuƒ‰ƒEƒU‚Å’T‚·‚É‚µ‚Ä‚àŽžŠÔ‚ªŠ|‚©‚é > ‚í‚©‚ç‚ñ‚È > —Š‚Þ‚©‚狳‚¦‚Ä‚‚ê‚æ ƒfƒxƒƒbƒp[ƒc[ƒ‹‚ðo‚µ‚Ĉê”Ô‰E‚É‚ ‚镊ۂÉc“ñdü‚ÌPause on exceptions‚ð‰Ÿ‚µ‚Æ‚¢‚ÄƒŠƒ[ƒh‚¾‚æ
70 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/05(ŒŽ) 23:59:55.31 ID:xBMPeqox.net] >>65 > ‚¢‚ÂŽÀs‚³‚ê‚é‚©•ÛØ‚µ‚ĂȂ¢‚¶‚á‚ñ ‚»‚ꉴ‚ª‘‚¢‚½ > ‚½‚¾‚µƒR[ƒ‹ƒoƒbƒN‚ªŽÀs‚³‚ê‚é‚܂ł̎žŠÔ‚ÍŽw’肵‚½‚Æ‚¨‚è‚É‚È‚é‚Æ‚ÍŒÀ‚ç‚È‚¢‚¾‚¯‚¾ ‚Ì‚±‚Æ‚È > ã‚Ì•û‚Ìa += 1;‚ðŽÀs‚·‚é‚܂łÉ100ms‚ÌŽžŠÔ‚ªŠ|‚©‚Á‚½‚Æ‚·‚邯A‚»‚Ì‘O‚ÉŽÀs‚³‚ê‚é‰Â”\«‚ª‚ ‚é ‚»‚̉”\«‚͂Ȃ¢‚ñ‚¾‚æ ƒXƒeƒbƒv‚Ì10‚ÅƒŠƒ^[ƒ“‚µ‚½uŒãvAŽc‚è‚̃Xƒeƒbƒv‚Í•À—ñ‚ÉŽÀs‚³‚ê‚é‰Â”\«‚ª‚ ‚é ‚»‚̈ê‚‚̃Xƒeƒbƒv14‚ŃR[ƒ‹ƒoƒbƒN‚ðŽÀs‚·‚éƒ^ƒXƒN‚ªƒLƒ…[‚É“ü‚ê‚ç‚ê‚é ƒ^ƒXƒN‚̓Lƒ…[‚É“ü‚ê‚ç‚ê‚邾‚¯‚ÅŽÀs‚Í‚³‚ê‚È‚¢ ‚»‚µ‚Ä‚»‚̃^ƒXƒN‚ªƒLƒ…[‚©‚çŽæ‚èo‚³‚ê‚ÄŽÀs‚³‚ê‚é‚̂ͧŒä‚ªƒCƒxƒ“ƒgƒ‹[ƒv‚É–ß‚Á‚½Œã‚¾ ‚¨‘O‚ÌŒ¾‚¤a += 1;‚ÌŽÀs‚ªI‚í‚ç‚È‚¢ŒÀ‚觌䂪ƒCƒxƒ“ƒgƒ‹[ƒv‚ɖ߂邱‚Ƃ͂Ȃ¢ ‚¾‚©‚çsetTimeout()‚̓^ƒCƒ€ƒAƒEƒgŽžŠÔ‚ÉˆêØŠÖŒW‚È‚í‚É”ñ“¯Šú‚¾ ÚׂÍ"14. Queue the task task."‚ÌƒŠƒ“ƒNæ‚ðŒ©‚Ä‚‚ê ‚»‚ñ‚ȓ‚l‚¦‚È‚‚Ä‚àƒVƒ“ƒOƒ‹ƒXƒŒƒbƒh‚È‚ñ‚¾‚©‚ç‚í‚©‚è‚»‚¤‚È‚à‚ñ‚¾‚ªw
71 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:14:54.50 ID:KFlyuGQs.net] >>67 > ‚»‚µ‚Ä‚»‚̃^ƒXƒN‚ªƒLƒ…[‚©‚çŽæ‚èo‚³‚ê‚ÄŽÀs‚³‚ê‚é‚̂ͧŒä‚ªƒCƒxƒ“ƒgƒ‹[ƒv‚É–ß‚Á‚½Œã‚¾ ƒCƒxƒ“ƒgƒ‹[ƒv‚É–ß‚é‚Ì‚ÍsetTimeout()‚Ì’¼Œã‚̈ʒu‚¾ (a += 1;‚Ì‘O)
72 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:22:50.21 ID:oSSj0EiH.net] >>66 > ƒfƒxƒƒbƒp[ƒc[ƒ‹‚ðo‚µ‚Ĉê”Ô‰E‚É‚ ‚镊ۂÉc“ñdü‚ÌPause on exceptions‚ð‰Ÿ‚µ‚Æ‚¢‚ÄƒŠƒ[ƒh‚¾‚æ ‚»‚ꕊۂÉc“ñdü‚ð‰Ÿ‚µ‚Äo‚Ä‚‚éƒpƒlƒ‹‚É‚ ‚éƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚Ì‚±‚Æ‚¾‚æ‚ÈH ‚»‚êuPause on exceptionsv‚¶‚á‚È‚‚ÄuPause On Caught Exceptionsv‚¾‚æ‚ÈH ‰´‚ª‚±‚ê‚܂ő‚¢‚½«‘S‘R“Ç‚ñ‚łȂ©‚Á‚½‚Ì‚©wwwwww >>58 > ‚Ü‚¸‚ÍŠm”F‚¾‚ªAChrome‚Å"Pause On Caught Exceptions"‚ÍŠO‚µ‚Ă邿‚ÈH >>63 > ‚»‚ꂾ‚¯‚¾‚Æ"Pause On Caught Exceptions"‚ð—LŒø‚É‚µ‚Ă邿‚¤‚É‚µ‚©Œ©‚¦‚È‚¢‚È "Pause On Caught Exceptions"‚Á‚Ä—LŒø‚É‚·‚邯 try { @throw new Error('err'); //‚±‚±‚Å‚àƒuƒŒ[ƒN‚·‚éI } catch (e) { @console.log('handled'); } ‚±‚ñ‚Ȃ̂܂ŃuƒŒ[ƒN‚µ‚¿‚Ⴄ‘㕨‚Ȃ킯‚æ “à‘ Promise‚ª‚Ç‚¤‚Æ‚©ˆêØŠÖŒW‚È‚AŽ©‘O‚̃‰ƒCƒuƒ‰ƒŠ‚¾‚낤‚ª‚È‚ñ‚¾‚낤‚ª ‚Ç‚±‚Å‚à—áŠOƒXƒ[‚·‚邯ƒuƒŒ[ƒN‚·‚éƒIƒvƒVƒ‡ƒ“‚Ȃ킯‚¶‚á‚ñ “à‘ Promise‚łȂ¢‚ÆŽÀ‘•‚Å‚«‚È‚¢‚Æ‚©‚Á‚Ęb‚Ɖ½‚ÌŠÖŒW‚È‚¢‚æ‚ÈH >>24 > > Eˆù‚Ýž‚܂ꂽ—áŠO‚ðƒfƒoƒbƒOo—ˆ‚é > ‚»‚è‚áAƒ‰ƒCƒuƒ‰ƒŠ“à•”‚Ìcatch“à‚ɃuƒŒ[ƒNƒ|ƒCƒ“ƒg‚𒣂Á‚đ҂¿‚©‚Ü‚¦‚Ä‚¢‚ê‚Î > ‰Â”\‚¾‚ª–ˆ‰ñ‚»‚ñ‚ÈŽ–‚·‚ñ‚Ì‚©H‚¢‚â‚·‚é‚킯‚È‚¢ > ‚»‚µ‚Ä—áŠO‚ªƒXƒ‹[‚³‚ê‚ĉ½‚à‹N‚«‚È‚¢ ª‚Ìà–¾‚Í"Pause On Caught Exceptions"‚Æ–µ‚‚µ‚Ă邱‚Ƃ͂킩‚é‚©H
73 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:29:21.55 ID:oSSj0EiH.net] >>68 > ƒCƒxƒ“ƒgƒ‹[ƒv‚É–ß‚é‚Ì‚ÍsetTimeout()‚Ì’¼Œã‚̈ʒu‚¾ (a += 1;‚Ì‘O) ‚ÍH ‚¦H ‚¦H setTimeout(function() { @... }, 0); // (a) a += 1; ‚±‚¤‚¢‚¤ƒR[ƒh‚Å(a)‚̈ʒu‚ŃCƒxƒ“ƒgƒ‹[ƒv‚ɖ߂邯Žv‚Á‚Ä‚é‚킯H ‚¢‚â‚¢‚â‚¢‚âA‚¢‚‚ç‚È‚ñ‚Å‚à‚»‚ê‚ÍBBB ‚ [
74 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:39:58.23 ID:KFlyuGQs.net] >>69 ‚ ‚Á‚»‚¤A‰´‚ÍFirefox‚µ‚©Žg‚Á‚ĂȂ¢‚©‚çChrome‚ÌŽ–‚Í‚»‚ê‚Å‚¢‚¢‚ÆŽv‚Á‚½‚æ Firefox‚¾‚Æ try { @throw new Error('err'); // ‚±‚±‚ŃuƒŒ[ƒN‚µ‚È‚¢‚Å } catch (e) { @console.log('handled'); } Promise.resolve(true).then(function(v) { throw new Error('then'); // ‚±‚±‚ŃuƒŒ[ƒN‚·‚é }); ‚É‚È‚é ‚à‚Í‚âV8‚Æ‚àŠÖŒW–³‚‚Ĉ«‚¢‚Èw
75 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:44:09.33 ID:KFlyuGQs.net] >>69 Chrome‚ÅPromise‚ðƒuƒŒ[ƒN‚³‚¹‚é•û–@‚Í–³‚¢‚Ì‚©‰½‚ç‚©‚Ì•û–@‚ª‚ ‚é‚Ì‚©’²‚ׂè‚‚æ
76 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 00:48:43.95 ID:oSSj0EiH.net] >>72 •ʂɂ¢‚¢‚æAŠJ””łŎæ‚è‘g‚ñ‚ł邩‚ç https://code.google.com/p/v8/issues/detail?id=3093 https://code.google.com/p/chromium/issues/detail?id=393913
77 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 02:04:56.21 ID:KFlyuGQs.net] ‰´‚ªŠ¨ˆá‚¢‚µ‚Ä‚¢‚½ Promise‚ÌŽd—l“I‚ɃCƒxƒ“ƒgƒ‹[ƒv‚ª1‰ñˆÈã”¶‚·‚鎖‚ð•ÛØ‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢‚©‚ç setTimeout()‚ł͊®‘S‚ł͂Ȃ¢‚Æ‚¢‚¤‚±‚Æ‚¾‚È ‚Í‚¢‚¨‚µ‚Ü‚¢
78 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 05:03:53.45 ID:D9r7QrzV.net] ‚Ü‚¾‚â‚Á‚Ä‚ñ‚Ì‚©c
79 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 15:07:59.00 ID:LUJGb7UT.net] ‚´‚Á‚Ɠǂñ‚Å‚½‚çA ƒCƒxƒ“ƒgƒ‹[ƒv”ñ“¯Šú ‚Á‚Ęb‚µ‚Ä‚é‚Ì‚©‚ÆŽv‚Á‚½(Î) ‰½‚ɑ΂µ‚Ă̓¯Šú‚©‚É‚à‚æ‚邾‚낤‚¯‚Ç‚Ë
80 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 19:05:27.58 ID:oSSj0EiH.net] >>76 JS‚Ì¢ŠE(“Á‚ɃR[ƒ‹ƒoƒbƒN—‚Ý)‚Å“¯ŠúE”ñ“¯Šú‚Æ‚¢‚Á‚½‚ç function foo(function callback() { @... //(1) }); ... //(2) (1)->(2)‚ÅŽÀs‚³‚ê‚é‚Ì‚ª“¯Šú (Array.forEach()‚Æ‚©) (2)->(1)‚ÅŽÀs‚³‚ê‚é‚Ì‚ª”ñ“¯Šú (setTimeout()‚Æ‚©) uEffective JavaScriptv‚Ì€–Ú67‚Æ‚©ˆÈ‰º‚Æ‚©ŽQÆ blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/
81 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 20:55:50.08 ID:Xd0L/8rv.net] >>16 > uPromise‚ð—‰ð‚µ‚È‚¢‚Æ”ñ“¯Šú‚̃ƒŠƒbƒg‚ð¶‚©‚¹‚È‚¢v‚Á‚Ä‚Ì‚Í > •\‘w‚µ‚©—‰ð‚µ‚ĂȂ¢‚Á‚ÄØ‚¾‚í‚È ^—‚¾‚Á‚½‚È
82 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 22:25:56.23 ID:QIYM1JY4.net] JavaScript‚̓Vƒ“ƒOƒ‹ƒXƒŒƒbƒh‚¾‚¯‚Ç Node‚ÌIO‚Í”ñ“¯ŠúA‚‚܂è•ʃXƒŒƒbƒh‚Ås‚í‚ê‚é
83 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 22:40:06.78 ID:oSSj0EiH.net] >>
84 –¼‘OF78 ‚Ü‚Ÿ‚Ü‚Ÿw >>79 •ʃXƒŒƒbƒh‚Ȃ̂̓tƒ@ƒCƒ‹‚¾‚¯‚Ńlƒbƒgƒ[ƒN‚âƒpƒCƒv‚̓ƒCƒ“ƒXƒŒƒbƒh‚¾‚æ Windows‚ł̓tƒ@ƒCƒ‹‚àƒƒCƒ“ƒXƒŒƒbƒh‚©‚à‚µ‚ê‚ñ [] [‚±‚±‰ó‚ê‚Ă܂·]
85 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 23:38:13.20 ID:KFlyuGQs.net] >>78 ‚½‚¾ø‚Á‚Ă邾‚¯‚¾‚ë ——R‚ðq‚×‚æ ‚·‚®‚É——R‚ðq‚ׂç‚ê‚È‚¯‚ê‚΂½‚¾‚Ìø‚è‚Æ”F’è‚·‚é (‚½‚Ô‚ñ–³—‚¾‚낤‚¯‚Ç)
86 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/06(‰Î) 23:44:03.55 ID:KFlyuGQs.net] >>80 ‰½‚ª‚Ü‚Ÿ‚Ü‚Ÿ‚¾‚æw ‚¨‘O‚à‚Ç‚¤‚¹–³”\‚È‚ñ‚¾‚ë ‚Æ‚è‚ ‚¦‚¸‚·‚®‚É——R‚ðŒ¾‚Á‚Ä‚Ý‚ë‚æAŒ¾‚¦‚È‚¢‚‚¹‚É
87 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/07(…) 14:59:21.93 ID:R3Z2NWM/.net] >>80 ‚»‚ñ‚ÈŽ––³‚¢‚¾‚ë ƒƒCƒ“ƒXƒŒƒbƒh‚Å‚â‚éˆÓ–¡‚È‚¢‚µ
88 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/07(…) 20:07:44.58 ID:OxX2nn0Y.net] >>83 ‹t‚Él‚¦‚é‚ñ‚¾ ƒlƒbƒg‚âƒpƒCƒv‚̓mƒ“ƒuƒƒbƒLƒ“ƒOI/O‚Å‘½d‰»‚Å‚«‚é‚©‚çƒ[ƒJƒXƒŒƒbƒh‚Å‚â‚éˆÓ–¡‚Ì•û‚ª‚È‚¢ Unix‚̃tƒ@ƒCƒ‹I/O‚Í‚»‚ꂪ‚Å‚«‚È‚¢‚©‚çƒ[ƒJƒXƒŒƒbƒh‚ŃuƒƒbƒLƒ“ƒOI/O‚¹‚´‚é‚𓾂Ȃ¢ ˆÈ‰º‚ÌNote‚É‚à‚»‚¤‚¢‚¤‚±‚Æ‚ª‘‚¢‚Ä‚ ‚é nikhilm.github.io/uvbook/filesystem.html ƒ\[ƒX‚¾‚ƃtƒ@ƒCƒ‹Œn‚Ì‘€ì(839s–Ú`)‚݂͂ñ‚Ȉȉº‚ÌPOSTƒ}ƒNƒ‚ðŽg‚Á‚Ä‚é https://github.com/libuv/libuv/blob/v1.x/src/unix/fs.c#L97 ‚»‚Ì’†‚Ìuv__work_submit()‚ªƒ[ƒJƒXƒŒƒbƒh‚Ɉ—‚ðˆË—Š‚·‚éŠÖ” ƒlƒbƒg‚âƒpƒCƒv‚ł͂»‚ñ‚È‚±‚Æ‚µ‚ĂȂ¢ Úׂð’m‚肽‚¯‚ê‚΃uƒƒbƒLƒ“ƒOI/OAƒmƒ“ƒuƒƒbƒLƒ“ƒOI/OA ‘½d‰»A”ñ“¯ŠúI/O‚Ƈ‚Éà–¾‚µ‚Ä‚é‰ðà‚ð“ǂނƂ¢‚¢ ‚»‚µ‚ÄUnix‚ł͖{•¨‚Ì”ñ“¯ŠúI/O‚ÍŽ–ŽÀã‚È‚¢‚±‚Æ‚ð’m‚éw
89 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:release age [2015/01/13(‰Î) 15:11:04.11 ID:LHG94Mlu.net] ‚‚¢‚É–{“ú io.js 1.0.0 ‚ª³Ž®ƒŠƒŠ[ƒXB v8ƒGƒ“ƒWƒ“‚Ì‚¨‚©‚°‚Å node ‚æ‚è‘å•‘¬“xŒüãB –{“ú‚Í io.js ‚Ì’a¶“ú‚Å‚ ‚邯‚Æ‚à‚É node ‚Ì–½“ú‚Æ‚à‚È‚è‚Ü‚µ‚½ÅÑÅÑ
90 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/14(…) 08:06:57.60 ID:EnBoJmyV.net] 2‚¿‚á‚ñ‚à‚¨•Ê‚ê‚Ì“ú‚ª‹ß‚¢‹C‚ª‚·‚é
91 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/14(…) 22:24:56.52 ID:knoTvZIn.net] CPU‚ðŽg‚¤ˆ—‚Ì‘¬“x‚ÍŠm‚©‚ÉŒüサ‚Ä‚¢‚é ‚ªAnode-gyp‚ªƒ‰ƒCƒuƒ‰ƒŠ‚ðƒ_ƒEƒ“ƒ[ƒho—ˆ‚¸ƒrƒ‹ƒh‚ÉŽ¸”s‚µ‚½‚è v8‚ÌAPI•ÏX‚Ånan‚ªƒRƒ“ƒpƒCƒ‹Ž¸”s‚µ‚½‚è ‚¿‚å‚Á‚Æ¢‚Á‚½ node-gyp‚͂ǂ±‚É‘Îô”Å‚ª‚ ‚é‚©•ª‚©‚ç‚¸Ž©•ª‚Å‚¿‚Ü‚¿‚܃tƒ@ƒCƒ‹–¼‚𒼂µ‚½ nan‚Í–{‰ÆƒŠƒ|ƒWƒgƒŠ‚É‘Îô”ł̃uƒ‰ƒ“ƒ`‚ ‚è
92 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/14(…) 22:26:05.98 ID:knoTvZIn.net] io.js‚Ì‚±‚Æ‚Ë ŒãAPath’ljÁ‚·‚邿‚¤‚ÉŽw’肵‚ăCƒ“ƒXƒg[ƒ‹‚µ‚½‚‚à‚è‚Ȃ̂ɉ½ŒÌ‚©’ljÁ‚³‚ê‚ĂȂ¢
93 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/16(‹à) 14:43:45.88 ID:sXdFjxSo.net] nodejsAJavascript‚ÉÚ‚µ‚‚È‚¢‚¯‚ÇB Šî–{‚ª”ñ“¯Šú‚Á‚Ă̂ª–Ê“|B “¯Šú‚ÌJavascript‚Ƃ͕ʕ¨‚¾B “¯Šú‚̃\[ƒXƒR[ƒh‚É“K‡‚³‚¹‚½‚¢B ‚±‚ê‚͂ǂ¤‚â‚Á‚½‚çŽÀŒ»‚Å‚«‚Ü‚·‚©B download‚ł̓¯Šúˆ—B data = download("www.google.co.jp/" ); data‚ɑ΂·‚鈗;
94 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/16(‹à) 14:55:27.50 ID:sXdFjxSo.net] ‚±‚ñ‚Ȃӂ¤‚É‚â‚Á‚Ä‚à‘Ò‚¿‚ªo—ˆ‚¸B url = "www.google.co.jp/"; data = download(url); console.log(data); function download(url) { data = undefined; request = require('superagent'); request.get(url) .end( function(resp){ data = resp.res.text; }); for(i=0; i<10 && data==undefined; i++) setTimeout(null, 500); return data; }
95 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/16(‹à) 15:07:39.68 ID:WEjV0wIz.net] “¯Šú‚ÌJavascript‚Á‚ăŒƒA‚¾‚È generator‚Å‹[Ž—“I‚É‚â‚é‚©async/await‚ð‘Ò‚Ä
96 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/16(‹à) 17:26:44.61 ID:x/KvFbcS
] [‚±‚±‰ó‚ê‚Ă܂·]
97 –¼‘OF.net mailto: >>90 ‚±‚ñ‚È‚ñ‚Å‚¢‚¢‚ñ‚¶‚á‚È‚¢H var httpsync = require('httpsync'); var url = "http://www.google.co.jp/"; var req = httpsync.get(url); var res = req.end(); var data = res.data.toString(); console.log(data); [] [‚±‚±‰ó‚ê‚Ă܂·]
98 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/16(‹à) 17:44:25.51 ID:TPIs3k36.net] JavaScript‚Å‘å—Ê‚ÌƒŠƒNƒGƒXƒg‚ðˆ—‚·‚é‚È‚ç Žg‚¤‚ׂ«‚̓ƒCƒ“ƒXƒŒƒbƒh‚ðƒuƒƒbƒN‚·‚铯ŠúIO‚È‚ñ‚©‚¶‚á‚È‚‚Ä “–‘R”ñ“¯ŠúIO‚¾‚æ‚È
99 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ [2015/01/16(‹à) 17:52:01.40 ID:+cZ2zonb.net] ‚ɂ킩
100 –¼‘OFƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ mailto:sage [2015/01/16(‹à) 20:23:30.77 ID:lUd0kLGp.net] –{‰Æ‚̃lƒXƒP‚ªÅ‰‚Éì‚Á‚½ƒT[ƒoƒTƒCƒhjavascript‚Í“¯Šú‚Ń}ƒ‹ƒ`ƒXƒŒƒbƒh‚¾‚Á‚½