我正在使用abortable fetch使获取时间过长的查询超时。

可以在Firebase函数中调用AbortController吗?

云功能:

exports.afterLike = functions.firestore
.document('users/{userId}/posts/{postId}')
.onUpdate(async (change, context) => {

    ...

    const abortCtrl = new AbortController();
    const signal = abortCtrl.signal;
    const timeout = setTimeout(() => {
        abortCtrl.abort()
    }, 8000)

    fetch('https://posturl.com/api', {
        signal: signal,
        likeId: "123456"
    })
})


但是AbortController是未定义的。这是firebase函数错误:

ReferenceError: AbortController is not defined
    at res.forEach (/srv/index.js:76:28)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)

最佳答案

不,AbortController是浏览器Web API,并且由于Cloud Functions不在Web浏览器上下文中运行(它是nodejs,因此没有浏览器头或DOM),因此没有AbortController可用。

关于javascript - Firebase云功能中的可中止提取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58782487/

10-09 20:59