On this page

    M

    queueMicrotask

    History
    queueMicrotask(callback): void
    Attributes
    callback:Function
    Function to be queued.

    The queueMicrotask() method queues a microtask to invoke callback. If callback throws an exception, the process object 'uncaughtException' event will be emitted.

    The microtask queue is managed by V8 and may be used in a similar manner to the process.nextTick() queue, which is managed by Node.js. The process.nextTick() queue is always processed before the microtask queue within each turn of the Node.js event loop.

    // Here, `queueMicrotask()` is used to ensure the 'load' event is always
    // emitted asynchronously, and therefore consistently. Using
    // `process.nextTick()` here would result in the 'load' event always emitting
    // before any other promise jobs.
    
    DataHandler.prototype.load = async function load(key) {
      const hit = this._cache.get(key);
      if (hit !== undefined) {
        queueMicrotask(() => {
          this.emit('load', hit);
        });
        return;
      }
    
      const data = await fetchData(key);
      this._cache.set(key, data);
      this.emit('load', data);
    };