如何在不使用异步的情况下使用Azure npm软件包?

问题描述 投票:0回答:1

由于折旧,我试图将代码更新为以下2个软件包:

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

我遇到的问题是我的代码当前使用的是异步/等待前的软件包,而所有较新软件包的文档都假定使用异步函数。

我想更新代码的功能,但不使用异步功能对其进行重组。是否有有关如何执行此操作的任何文档?还是任何清晰易懂的示例?

例如,我正在使用此示例上传Blob:

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();

我想在没有异步/等待的情况下这样做,对于blockBlobClient.upload,请使用function(err, result){ do stuff}作为我的代码。

类似地,我想使用@azure/cosmos函数来这样做。

我当前的包裹是:

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

这可能吗?

我真的不希望重组我的所有代码...

谢谢

node.js azure azure-cosmosdb azure-storage-blobs azure-function-app
1个回答
0
投票

对于任何返回承诺的方法,您仍然可以使用回调方法:

blockBlobClient.upload().then((response) => {
  // do something with the response...
});
© www.soinside.com 2019 - 2024. All rights reserved.