gpt4 book ai didi

node.js - 无法将异步函数部署到 Google Cloud Functions

转载 作者:搜寻专家 更新时间:2023-10-31 23:40:21 25 4
gpt4 key购买 nike

我使用的是最新版本的 Node,v8.9.1,但在部署以下代码时出现此错误:

Function load error: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/index.js:550
async function deleteQueryBatch(db, query, batchSize, results) {
^^^^^^^^

SyntaxError: Unexpected token function

代码(需要伪函数来获取错误):

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.firestore()

exports.some = functions.firestore.document('x/{x}').onCreate(event => {

})

function deleteCollectionAndReturnDeletedDocs(db, collectionRef, batchSize) {
return deleteQueryBatch(db, collectionRef.limit(batchSize), batchSize, []);
}
async function deleteQueryBatch(db, query, batchSize, results) {
const snapshot = await query.get();
if (snapshot.size > 0) {
let batch = db.batch();
snapshot.docs.forEach(doc => {
if (doc.exists) {
results.push(doc.data())

};
batch.delete(doc.ref);
});
await batch.commit();
}
if (snapshot.size >= batchSize) {
return deleteQueryBatch(db, query, batchSize, results);
} else {

return results;
}
}

如何部署异步函数?我在 Evennode 上的服务器上没有收到此错误。

最佳答案

Cloud Functions currently runs Node 6 LTS ,这意味着它本身不支持异步/等待。如果您想使用某种形式的异步/等待,您必须将 ES7 或 TypeScript 转换为 ES6,以便它可以在 Cloud Functions 提供的 Node 容器中运行。转译器应使用 promises 将 async/await 转换为等效代码。

该团队正在考虑提供 Node 8 LTS。

关于node.js - 无法将异步函数部署到 Google Cloud Functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47255551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com