簡體   English   中英

Google Cloud / Firebase功能:等待僅在異步功能中有效

[英]Google Cloud / Firebase Functions: await is only valid in async function

我創建了這個函數:

async function getRoomTempFromRoomId(roomId) {
    const querySnapshot = await db.collection("sensors").where("room", "==", roomId).where("type", "==", "temperature").limit(1).get();
    var values = []
    values = querySnapshot.docs.map((doc) => { return doc.data().value });
    return values[0];
}

現在,當我使用console.log(await getRoomTempFromRoomId("1234"))調用此函數時,收到以下錯誤:

SyntaxError: await is only valid in async function
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
⚠  Your function was killed because it raised an unhandled error.

相同的代碼可用於其他Firebase項目

您沒有在問題中顯示它,但是包含調用await getRoomTempFromRoomId函數本身未標記為async 如果立即將其包圍的功能是async功能,則只能使用await 並不是說,如果await在異步函數內部的匿名函數中仍然無法工作,因為回調函數本身不是異步的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM