
3.2
非同期パターン(素の
JavaScript
編)
51
Google
のソフトウェアエンジニアで
V8
の開発者である
Vyacheslav Egorov
が、
V8
に
おけるクロージャの内部実装に関してすばらしいブログ記事を公開しています
−
http://
mrale.ph/blog/2012/09/23/grokking-v8-closures-for-fun.html
先ほどの
spider()
は、まさにコールバック地獄の状態にあり、これまで述べてきた問題をすべて内
包しています。これからひとつずつ解決していきましょう。
3.2
非同期パターン(素の
JavaScript
編)
実際に非同期のコードを書く際には、コールバック地獄を避ける以外にも、非同期処理の制御フロー
に関するパターンを知る必要があります。たとえば、あるリストの各要素に対して非同期処理を行う場
合、単純に配列の
forEach()
メソッドを呼び出すのではなく、再帰呼び出しに似たアプローチが必要
になります。
こ
の節では、コールバック地獄を避ける方法だけでなく、ライブラリを利用しない素
す
の
JavaScript
で
一般的な制御フローを実現するためのパターンも紹介します。
3.2.1
基本原則
非同期のコードを書くときに、まず気をつけるべきことは、「クロージャを乱用しない」です。クロー
ジャは便利ですが、モジュラリティや再利用性の観点からは使用を控えるべきです。コールバック地
獄回避の第一歩は、ライブラリや特別な技術に頼るのではなく、次にあげる基本原則に従 ...