向两个URL发送GET请求,并将响应聚合为一个响应。
示例代码
// 提取抓取页面的 <title> 文本内容
async function parseTitleFromHTML(response) {
let htmlText = await response.text()
const titleStart = htmlText.indexOf('<title>');
const titleEnd = htmlText.indexOf('</title>', titleStart);
if (titleStart !== -1 && titleEnd !== -1) {
return htmlText.substring(titleStart + '<title>'.length, titleEnd);
}
return ""
}
async function handleRequest() {
// 同时发出两个 fetch 请求获取两个页面的 HTML
const responses = await Promise.all([fetch("https://www.ctyun.cn/products/accessone"), fetch("https://www.ctyun.cn/products/cdnjs")])
// 将两个页面的 <title> 文本内容拼接起来
const results = await Promise.all([
parseTitleFromHTML(responses[0]),
parseTitleFromHTML(responses[1]),
])
// 将拼接后的结果返回
return new Response(results.join(" | "))
}
addEventListener("fetch", event => {
return event.respondWith(handleRequest())
})
示例预览
返回响应聚合内容。
相关参考
- 运行时API:addEventListener
- 运行时API:FetchEvent
- 运行时API:Web Standards
- 运行时API:Response
- 运行时API:Fetch