How to implement a lock in JavaScript

前端 未结 8 940
青春惊慌失措
青春惊慌失措 2020-12-04 07:49

How could something equivalent to lock in C# be implemented in JavaScript?

So, to explain what I\'m thinking a simple use case is:

User clicks

8条回答
  •  春和景丽
    2020-12-04 08:37

    Here's a simple lock mechanism, implemented via closure

    const createLock = () => {
    
        let lockStatus = false
    
        const release = () => {
            lockStatus = false
        }
    
        const acuire = () => {
            if (lockStatus == true)
                return false
            lockStatus = true
            return true
        }
        
        return {
            lockStatus: lockStatus, 
            acuire: acuire,
            release: release,
        }
    }
    
    lock = createLock() // create a lock
    lock.acuire() // acuired a lock
    
    if (lock.acuire()){
      console.log("Was able to acuire");
    } else {
      console.log("Was not to acuire"); // This will execute
    }
    
    lock.release() // now the lock is released
    
    if(lock.acuire()){
      console.log("Was able to acuire"); // This will execute
    } else {
      console.log("Was not to acuire"); 
    }
    
    lock.release() // Hey don't forget to release

提交回复
热议问题