2

JavaScript で AddElementToDom() という関数があり、配列に対してループを実行し、要素を Dom に追加します (多くの場合、時間がかかります)。関数はさまざまなイベントから呼び出されています。この関数へのすべての呼び出しが、別の AddElementToDom を開始する前に、関数を終了するために前の呼び出しを待機していることを確認したいと考えています。私のアイデアは、c# のように lock() を実行しています。しかし、JavaScriptで見つけることができませんでした。ロックを実装する最良の方法は何ですか?

4

1 に答える 1

0

Javascript はシングル スレッドであるため、同時実行性の問題はありません。したがって、ロックはありません。ロックは、並行性の問題を解決するためのものです。

ただし、「操作 Foo は操作 Bar が完了するまで実行されるべきではない」というロジックが必要な場合もありますお気に入り:

var operationBarIsCompleted = false;

function foo() {
    if(!operationBarIsCompleted) {
        return;
    }
// ...
}

function bar() {
    // ...
    operationBarIsCompleted = true;
}

しかし今、私はあなたのためにプログラミングロジックを書いているだけです。

ただし、これがイベント駆動型の場合は、非同期コードとコールバックの操作を学ぶ必要があります。SOの答えでこれを教えることはできません。GoogleとStackOverflowのリソースが豊富です

于 2013-10-06T23:57:45.190 に答える