ES6文法 プロミス構文
非同期処理とPromise構文
JavaScript では時間のかかる処理は、ほぼ非同期なのが前提。(通信とかローカルファイルの読み込みとかの外部アクセス処理)
以下のものは起きた、の遅延によりおやすみ、おはよう、起きたの順番で表示されてしまう。
const wakeUp = ms => { setTimeout(()=>{ console.log('起きた');},ms); }; const greet = () => { console.log('お や す み '); wakeUp(2000); console.log('お は よ う ! '); } } greet();
非同期処理ではなく、同期的に処理を行いたい場合は以下のようにPromiseを使う
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const greet = () => { console.log('お や す み '); sleep(2000) .then(() => { console.log('起 き た '); console.log('お は よ う ! '); }) .catch(err => { console.error('睡眠例外です:',err); }) } greet();