[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/API/HTML_DOM_API/Microtask_guide [Back]  [Original]

JavaScript queueMicrotask() - Web API | MDN

MDN Web Docs

View in English Always switch to English

JavaScript queueMicrotask()

JavaScript

JavaScript API queueMicrotask() Window Worker

JavaScript : JavaScript

JavaScript

JavaScript

2

JavaScript

queueMicrotask()

:

JavaScript

queueMicrotask()

queueMicrotask()

JavaScript (Function) queueMicrotask() Window Worker

js
queueMicrotask(() => {
  /*  */
});

JavaScript

1 if...else 1

js
customElement.prototype.getData = (url) => {
  if (this.cache[url]) {
    this.data = this.cache[url];
    this.dispatchEvent(new Event("load"));
  } else {
    fetch(url)
      .then((result) => result.arrayBuffer())
      .then((data) => {
        this.cache[url] = data;
        this.data = data;
        this.dispatchEvent(new Event("load"));
      });
  }
};

if...else 1 else

js
element.addEventListener("load", () => console.log("Loaded data"));
console.log("Fetching data");
element.getData();
console.log("Data fetched");

2

Fetching data
Data fetched
Loaded data

Fetching data
Loaded data
Data fetched

data

2 if

js
customElement.prototype.getData = (url) => {
  if (this.cache[url]) {
    queueMicrotask(() => {
      this.data = this.cache[url];
      this.dispatchEvent(new Event("load"));
    });
  } else {
    fetch(url)
      .then((result) => result.arrayBuffer())
      .then((data) => {
        this.cache[url] = data;
        this.data = data;
        this.dispatchEvent(new Event("load"));
      });
  }
};

data load if queueMicrotask() else fetch()

js
const messageQueue = [];

let sendMessage = (message) => {
  messageQueue.push(message);

  if (messageQueue.length === 1) {
    queueMicrotask(() => {
      const json = JSON.stringify(messageQueue);
      messageQueue.length = 0;
      fetch("url-of-receiver", json);
    });
  }
};

sendMessage()

JavaScript sendMessage()

JSON.stringify() JSON messageQueue fetch() JSON

sendMessage() fetch()

JSON

JavaScript

queueMicrotask() log()

js
log("Before enqueueing the microtask");
queueMicrotask(() => {
  log("The microtask has run.");
});
log("After enqueueing the microtask");

0 setTimeout()

JavaScript

queueMicrotask() log()

0 log()

js
const callback = () => log("Regular timeout callback has run");

const urgentCallback = () => log("*** Oh noes! An urgent callback has run!");

log("Main program started");
setTimeout(callback, 0);
queueMicrotask(urgentCallback);
log("Main program exiting");

queueMicrotask()

JavaScript

doWork() queueMicrotask()

js
const callback = () => log("Regular timeout callback has run");

const urgentCallback = () => log("*** Oh noes! An urgent callback has run!");

const doWork = () => {
  let result = 1;

  queueMicrotask(urgentCallback);

  for (let i = 2; i <= 10; i++) {
    result *= i;
  }
  return result;
};

log("Main program started");
setTimeout(callback, 0);
log(`10! equals ${doWork()}`);
log("Main program exiting");


Web Proxy Viewer  |  New URL  |  Original Page