static sleep(ms) {
    return new Promise((resolve) => setTimeout(resolve, ms))
  }
Delay the execution for a given time in millisecond unit.
@param {number} ms - The time to be delayed in millisecond unit.
@returns {Promise} A promise object that is used to wait.