回答編集履歴
1
よりわかりやすく
    
        answer	
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            `async`付きの関数は、本質的には**`Promise`を返す関数**です。`await`なしで呼べば`Promise`を受け取ることもできますし、逆に`async`表記でない、返り値が`Promise`の関数を`await`させることもできます。
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            そして、[`async-await`の仕様](https://tc39.github.io/ecmascript-asyncawait/)を読み解いてみると、`await`が現れるまでの間は** 
     | 
| 
      
 3 
     | 
    
         
            +
            そして、[`async-await`の仕様](https://tc39.github.io/ecmascript-asyncawait/)を読み解いてみると、`await`が現れるまでの間は**同期的に実行される**こととなります。簡単に言えば、`await`以降の行を、`await`で待つ`Promise`の`.then()`に切り出したような感じになります。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            つまり、
         
     | 
| 
       6 
6 
     | 
    
         |