如何锁定javascript

时间:2013-10-06 23:56:04

标签: javascript

我在javascript中有一个名为AddElementToDom()的函数,它在数组上运行循环并向Dom添加元素(其中很多都需要很长时间)。该函数是从不同的事件中调用的。我想确保在启动另一个AddElementToDom之前,对此函数的每次调用都在等待上一次调用以完成该函数。我的想法是在c#中执行lock()。但我在javascript中找不到一个。实现锁定的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

Javascript是单线程的,因此您没有并发问题。因此,没有锁。锁用于解决并发问题。

你可能仍然想要逻辑,说“在操作栏完成之前,操作Foo不应该运行”。像:

var operationBarIsCompleted = false;

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

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

但现在我只是为你编写编程逻辑。

但是,如果这是事件驱动的,那么您需要学习使用异步代码和回调。我无法通过SO答案来教导这一点; plenty of resources on GoogleStackOverflow