ждать не удается внутри асинхронной функции - PullRequest
0 голосов
/ 12 октября 2019

Использование «for await» в асинхронной функции Azure приводит к следующей ошибке:

Исключение: рабочий не смог загрузить функцию HttpTrigger: 'SyntaxError: Неожиданное зарезервированное слово' Stack: D: \ home \ site \ wwwroot \HttpTrigger \ index.js: 19 для await (const-контейнер blobServiceClient.listContainers ()) {^^^^^

SyntaxError: неожиданное зарезервированное слово

Обратите внимание, что ожидание используется внутриасинхронная функция, и она должна работать:

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request!!!!');

    const {ManagedIdentityCredential } = require ("@azure/identity")
    const { BlobServiceClient } = require("@azure/storage-blob"); // Change to "@azure/storage-blob" in your package

    let cred = new ManagedIdentityCredential()
    let myStr = ""    

    const blobServiceClient = new BlobServiceClient(
        // When using AnonymousCredential, following url should include a valid SAS or support public access
        `https://leonbragtest.blob.core.windows.net`,
        cred
      );

    let i = 1;

    (async () => {
        for await (const container of blobServiceClient.listContainers()) {
        console.log(`Container ${i++}: ${container.name}`);
        myStr += `Container ${i++}: ${container.name} `
        }
    })()

    context.res = {
        status: 200,
        body: "Time is:" + new Date() + "<br/>" + myStr
    };

};

Когда внутренняя асинхронная оболочка удалена, генерируется та же ошибка.

Что я делаю неправильно, вызывая await внутри асинхронной функции?

1 Ответ

0 голосов
/ 13 октября 2019

решаемая. Среда выполнения Azure Func не поддерживает «ожидание» (как мне было указано). Использование iter сработало.

...