anchor.diff:  ____
   - 非同期コールバックは（たとえデータが即座に利用できても）決して同期的に使ってはならない。
   - 非同期コールバックを同期的に呼び出すと、処理の期待されたシーケンスが乱され、
  -コードの実行順序に予期しない変動がしょうじるかもしれない。
  +コードの実行順序に予期しない変動が生じるかもしれない。
   - 非同期コールバックを同期的に呼び出すと、スタックオーバーフローや例外処理の間違いが発生するかもしれない。
   - 非同期コールバックを次回に実行されるようスケジューリングするには、`setTimeout`のような非同期APIを使う。
   ____
  
positive.code: [role="executable"]
  [source,javascript]
  ----
  var promise = new Promise(function taskA(resolve){
      console.log("inner promise");// <1>
      resolve(42);
  });
  
negative.code: ----
  
  JavaScriptは上から実行されていくため、まず最初に`<1>`が実行されますね。
  そして次に`resolve(42);`が実行されます。
  
  そのため、この`promise`オブジェクトは`promise.then`で`<3>`のコールバック関数を登録する時点で、
  `42`という値にFulFilledされています。
  
  `promise.then`を行う時点でpromiseオブジェクトの状態が決まっているため、
  プログラム的には同期的にコールバック関数に`42`を渡して呼び出す事はできますね。
  
  しかし、Promiseでは`promise.then`の時点でpromiseの状態が決まっていても、
  そこで登録したコールバック関数は非同期で呼び出される仕様になっています。
  
  何故、同期的に呼び出せるのにわざわざ非同期的に呼び出しているでしょうか?
  
  === 同期と非同期の混在の問題
  
  この問題はPromise以外でも適応できるため、もう少し一般的な問題として考えみましょう。
  
  この問題はコールバック関数を受け取る関数が、
  状況によって同期処理になるのか非同期処理になるのかが変わってしまう問題と同じです。
  
  次のような、`onReady(fn)` 関数を見てみましょう。
  
  