Как использовать Azure npm пакеты без asyn c? - PullRequest
0 голосов
/ 11 февраля 2020

Из-за устаревания я пытаюсь обновить свой код до следующих 2 пакетов:

https://www.npmjs.com/package/@azure / storage-blob https://www.npmjs.com/package/@azure / cosmos

Проблема, с которой я сталкиваюсь, заключается в том, что мой код в настоящее время использует пакеты, которые были pre async / await, тогда как вся документация для более новых пакетов предполагает использование функций asyn c.

Я бы нравится обновлять функции моего кода, но не реструктурировать его с помощью функций asyn c. Есть ли документация о том, как это сделать? Или любые простые и понятные примеры?

Например, я использую этот пример для загрузки большого двоичного объекта:

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

const account = "<account>";
const defaultAzureCredential = new DefaultAzureCredential();

const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  defaultAzureCredential
);

const containerName = "<container name>";

async function main() {
  const containerClient = blobServiceClient.getContainerClient(containerName);

  const content = "Hello world!";
  const blobName = "newblob" + new Date().getTime();
  const blockBlobClient = containerClient.getBlockBlobClient(blobName);
  const uploadBlobResponse = await blockBlobClient.upload(content, content.length);
  console.log(`Upload block blob ${blobName} successfully`, uploadBlobResponse.requestId);
}

main();

Я бы хотел сделать это без async / await и для blockBlobClient.upload используйте function(err, result){ do stuff}, поскольку мой код уже есть.

Аналогично, я хотел бы сделать это с @azure/cosmos функциями.

Мои текущие пакеты:

https://www.npmjs.com/package/documentdb https://www.npmjs.com/package/azure-storage

Возможно ли это?

Я бы действительно предпочел не реструктурировать весь мой код ...

Спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Для любых методов, которые возвращают обещание, вы все равно можете использовать метод обратного вызова:

blockBlobClient.upload().then((response) => {
  // do something with the response...
});
...