.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

setTimeoutsetInterval、最新の「Web Workers」を使用可能。

並行処理

疑似の並行処理

  • もともとJavaScriptはシングルスレッドの実装しかできなかった。
  • このため、メッセージループを手動でタイムスライスするような疑似の並行処理を実装できる。

setTimeout

指定された遅延の後に、コードの断片または関数を”一回だけ”実行する。

setInterval

指定された遅延の後に、コードの断片または関数を”繰り返し”実行し続ける。

真の並行処理

Web Workers (JavaScript)

前述のsetTimeoutsetIntervalは、疑似の「並行処理」で、
Web Workersでスレッド機能を追加し、真の「並行処理」ができるようになる。

非同期

  • 呼び出し元(関数やUI)をブロックしない。
  • 呼び出し元と、並列して処理を行う。という意味で前述と同じ。
  • しかし、コチラは、イベントキュー・ベースのシングルスレッド処理。

従来型コールバック

Promise (JavaScript)

async/await (JavaScript)

コールバック

並行処理非同期で使用されるコールバック

従来型コールバック

以下のように、コールバック地獄に陥り易い。

fetchSomething1(function() {
  fetchSomething2(function() {
    fetchSomething3(function() {
      fetchSomething4(doSomethingFinally);
    });
  });
});

Promise (JavaScript)

Promiseではコールバックを関数に渡すかわりに、
コールバックを付属させたPromiseオブジェクトをリターンすることで、
従来型コールバックにおけるコールバック地獄を解決する。

参考

setTimeout

setInterval

その他


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-04-14 (水) 16:55:56 (34d)