FetchEvent:handled 属性

注意:此功能仅在Service Workers中可用。

FetchEvent接口的handled属性返回一个 Promise,指示事件是否已被 fetch 算法处理。此属性允许在浏览器使用响应后执行代码,通常与waitUntil()方法一起使用。

一个Promise,在事件未被处理时处于挂起状态,一旦事件被处理则变为已完成状态。

示例

js
addEventListener("fetch", (event) => {
  event.respondWith(
    (async function () {
      const response = await doCalculateAResponse(event.request);

      event.waitUntil(
        (async function () {
          await doSomeAsyncStuff(); // optional

          // Wait for the event to be consumed by the browser
          await event.handled;

          return doFinalStuff(); // Finalize AFTER the event has been consumed
        })(),
      );

      return response;
    })(),
  );
});

规范

规范
Service Workers
# dom-fetchevent-handled

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅