如何锁定JavaScript

How to do lock in javascript

本文关键字:JavaScript 锁定 何锁定      更新时间:2023-09-26

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

Javascript 是单线程的,所以你没有并发问题。因此,没有锁。锁旨在解决并发问题。

不过,您可能仍然需要逻辑,说"在操作 Bar 完成之前,操作 Foo 不应该运行"。 喜欢:

var operationBarIsCompleted = false;
function foo() {
    if(!operationBarIsCompleted) {
        return;
    }
// ...
}
function bar() {
    // ...
    operationBarIsCompleted = true;
}

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

但是,如果这是事件驱动的,那么您需要学习使用异步代码和回调。 我不能通过SO答案来教这个;谷歌和StackOverflow上的大量资源。

相关文章: