create a setter hook here
when it get ture, it will run all function in waiting queue immediately
function set(value) {
          if (value === true) {
            while (waitingQueue.length > 0) {
              waitingQueue[0]();
              waitingQueue.shift();
            }
          }
          return value;
        }