首页 > 解决方案 > 如何在没有异步的情况下使用 Azure npm 包?

问题描述

由于折旧,我正在尝试将我的代码更新为以下 2 个包:

https://www.npmjs.com/package/@azure/storage-blob https://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();

我想在没有 async/await 的情况下这样做,并像我的代码一样blockBlobClient.upload使用。function(err, result){ do stuff}

同样,我想用@azure/cosmos函数这样做。

我目前的套餐是:

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

这可能吗?

我真的不想重组我所有的代码......

谢谢

标签: node.jsazureazure-cosmosdbazure-blob-storageazure-sdk

解决方案


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

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

推荐阅读