1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javascript 備忘録7<非同期処理>

Posted at

■同期処理と非同期処理
→同期処理とは、1スレッドの中で上から下へとソースコードが実行されること
→同期処理では一つの処理が終了するまで、他の処理は行われない
→非同期処理は、メインスレッドから外れて別の処理を裏で実行する
→完了後、再度メインスレッドに戻ってくる
→非同期処理を裏で行っている際に、メインでは別の処理を行うことができる

■非同期処理について
→非同期処理はタスクキューにファーストイン・ファーストアウトの形で処理される
→コールスタック(メインスレッド)に処理が残っている間は、タスクキューに積まれた処理は実行されない
→コールスタックが空になると、やっとタスクキューの処理が実行されれる

■Promiseについて(ES6以降)

function sleep(callback, val) {
    setTimeout(function() {
        console.log(val++);
        callback(val);
    }, 1000)
}

sleep(function(val) {
    sleep(function(val) {
        console.log('callback done')
    }, val)
}, 0)

→sleepを何回も呼び出すことで、非同期処理のチェーンを作成することができる
→しかし、今は2回で住んでいるが100回となるとソースが助長的になり、ネストも深くなってしまう
→その際にPromiseを使用する

// promiseの構文
new Promise(function() {
    
}).then(function(data) {
    // 非同期処理
}).catch(function(data) {
    // 非同期処理
}).finally(function(){
    // 非同期処理
});
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?