簡體   English   中英

for await 給出 SyntaxError: Unexpected reserved word inside a async function

[英]for await gives SyntaxError: Unexpected reserved word inside a async function

這是我拋出異常的代碼。 無法弄清楚為什么它會說“意外的保留字”。 main() 函數是一種異步類型。 它不會抱怨上面的代碼行。

const { BlobServiceClient } = require("@azure/storage-blob");
async function main() {
    try {
        const blobServiceClient = await BlobServiceClient.fromConnectionString('some string');
        let i = 1;
        const result = await blobServiceClient.listContainers();
        for await (const container of result) {
            console.log(`Container ${i++}: ${container.name}`);
        }
    } catch (error) {
        console.log(error);
    }
}

main();

您收到此錯誤是因為您的 Node 版本低於 10.0 並且不支持for await...of 作為旁注, for await在這里沒有任何影響,可以替換為僅for原來 api 確實需要它


補充:來自文檔:如果您的運行時支持它,您可以使用for await of ,或者以老式的方式迭代一個可迭代對象

let containerItem = await result.next();
while (!containerItem.done) {
  console.log(`Container ${i++}: ${containerItem.value.name}`);
  containerItem = await iter.next();
}

有一種解決方法:

const { BlobServiceClient } = require("@azure/storage-blob");

async function main() {
    try {
        const blobServiceClient = await BlobServiceClient.fromConnectionString('DefaultEndpointsProtocol=https;AccountName=devappsstorage;AccountKey=aw/FF01OIfnYmK6Bh+d4NIhvVBaDKn942O22YAMNycX/27qKVwYW+/Dma/C7pI+lvU0wpo/VBJ1jFd4yi3MMWw==;EndpointSuffix=core.windows.net');
        let i = 1;
        let iter = blobServiceClient.listContainers();
        let containerItem = await iter.next();
        while (!containerItem.done) {
            console.log(`Container ${i++}: ${containerItem.value.name}`);
            containerItem = await iter.next();
          }
    } catch (error) {
        console.log(error);
    }
}

main();

暫無
暫無

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

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