BMEANスタックã¨ã„ã†ã®ã¯ã€BreezeJS, MongoDB, Express, AngularJS, Node.jsを使ã£ãŸã‚½ãƒ•トエアスタックã®ã“ã¨ã§ã™ã€‚
Breezeã‚’ç°¡å˜ã«ä½¿ã„ãŸã„ã¨æ€ã£ã¦ã€social-cms-backendã‚’å¤§å¹…ã«æ”¹ä¿®ã—ã¾ã—ãŸã€‚ APIã¯å¤‰ã‚ã£ã¦ã„ãªã„ã®ã§ã™ãŒã€breeze-mongodbを使ãˆã‚‹ã‚ˆã†ã«å·¥å¤«ã—ã¾ã—ãŸã€‚åé¢ã€å‡¦ç†ãŒè¤‡é›‘ã«ãªã‚Šã‚ªãƒ¼ãƒãƒ˜ãƒƒãƒ‰ãŒå¢—ãˆã¦ã„ã¾ã™ã€‚
ãã®æ–°ã—ã„social-cms-backendã‚’ä½¿ã†æ®µéšŽã§ä¸€ã¤æ°—ã¥ã„ãŸã“ã¨ãŒã‚ã‚‹ã®ã§ã€ãƒ¡ãƒ¢ä»£ã‚ã‚Šã«æ›¸ã„ã¦ãŠãã¾ã™ã€‚詳細ã¯çœãã¾ã™ãŒã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚µã‚¤ãƒ‰ã®ã‚³ãƒ¼ãƒ‰ã§promiseを使ã„ãŸããªã‚Šã¾ã—ãŸã€‚ãã‚‚ãã‚‚ã€Breezeã®APIãŒpromiseã‚’è¿”ã—ã¾ã™ã€‚Angularã«ã‚‚$qã¨ã„ã†ã®ãŒã‚ã£ã¦promiseãŒä½¿ãˆã¾ã™ã€‚
ã¨ã“ã‚ãŒã€Breezeã®promiseã®ãƒ¡ã‚½ãƒƒãƒ‰ãŒã€
promise.then()
promise.fail()
promise.fin()
ãªã®ã«å¯¾ã—ã¦ã€Angularã®æ–¹ã¯ã€
promise.then()
promise.catch()
promise.finally()
ã«ãªã£ã¦ã„ã‚‹ã®ã§ã™ã€‚ã¡ãªã¿ã«ã€catch,finallyã¯jsBeautifierã§ã¯äºˆç´„語ã¨ã¿ãªã•れã¦ä¸ä¾¿ã§ã™ã€‚
wrapã™ã‚Œã°ã„ã„ã ã‘ã§ã™ãŒã€ãªã‚“ã¨ãªã䏿º€ã§ã—ãŸã€‚ãれã ã‘ã§ã™ã€‚
Angularã¯ã€https://github.com/kriskowal/qã‚’ã‚‚ã¨ã«ã—ã¦ã„ã‚‹ã¨ãƒ‰ã‚ãƒ¥ãƒ¡ãƒ³ãƒˆã«æ›¸ã„ã¦ã‚りã¾ã™ãŒã€ã©ã†ã—ã¦ãƒ¡ã‚½ãƒƒãƒ‰åを変ãˆãŸã®ã§ã—ょã†ã€‚ãã£ã¨ã€ãªã«ã‹ç†ç”±ãŒã‚ã‚‹ã®ã ã¨ã¯æ€ã„ã¾ã™ãŒã€èªã¿å–れãªã‹ã£ãŸã§ã™ã€‚
タイトルã«ã‚る「困ã£ãŸã€ã¯ã“ã®äº‹å®Ÿã«ã—ã°ã‚‰ãæ°—ã¥ã‹ãšã€ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã§ã¯ã¾ã£ã¦ã—ã¾ã£ãŸã€ã¨ã„ã†ã“ã¨ã§ã—ãŸã€‚
2/16追記。
q.jsã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’èªã‚“ã§ã„ãŸã‚‰ã€catch,finallyも一応サãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã—ãŸã€‚ã„ãšã‚Œã«ã—ã¦ã‚‚常ã«ã€thenã ã‘を使ã£ã¦ãŠãã»ã†ãŒå®‰å¿ƒãªæ°—ãŒã—ã¾ã™ã€‚