日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

waitUntil類FAQ

本文為您列出了邊緣程序ER(EdgeRoutine)的waitUntil相關的常見問題。

為什么Fetch請求有時能完成,有時不能完成?

Fetch請求有時能完成,有時不能完成的原因如下:

  • 受生命周期限制

    當您調用addEventListener注冊事件回調函數時,會自動創建上下文。當您的主回復結束,即調用event.respondWith返回的Response對象被讀取完畢(包括header、body)后會結束上下文。

    所有異步函數的生命周期都在上下文生命周期之內,您在回調函數中await的Promise會阻塞當前的回調函數,直到該Promise被resolve。如果您不想await,則可以使用event.waitUntil函數,該函數會延長上下文的生命周期,直到所有被waitUntil的Promise執行完畢。

  • 受共享狀態影響

    多個上下文之間不能共享狀態,任何非JS標準的數據結構都不支持跨上下文共享,例如Service Worker API的數據結構、Stream對象。當上下文A使用非上下文A的對象時,會被ER檢測出來并拋出異常。

    說明

    您可以使用JS的原生對象共享狀態,例如String、Array、Object和數字等,您自己編寫的Class也可以用于共享狀態。

  • 受并發影響

    所有沒有被await的Promise都是并發的,如果您希望ER程序能立即回復瀏覽器,可以不await子請求,直接使用waitUntil保證程序正常執行。

  • 受異步錯誤影響

    如果waitUntil中的子請求有一個出錯,整個上下文會被立刻退出。

waitUntil可以調用多次嗎?

waitUntil可以調用多次,也可以嵌套waitUntil,即一個waitUntil的Promise被resolve,其回調函數中繼續調用waitUntil。

說明

上下文有時間限制,超過時間的上下文會被強制退出。