【问题标题】:How to use Azure npm packages without async?如何在没有异步的情况下使用 Azure npm 包?
【发布时间】:2020-04-01 21:18:52
【问题描述】:

由于折旧,我正在尝试将我的代码更新为以下 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

这可能吗?

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

谢谢

【问题讨论】:

  • 请问您为什么不想异步?据我所知,Azure 函数支持异步。更多详情请参考docs.microsoft.com/en-us/azure/azure-functions/…
  • @JimXu 我正在尝试更新我的代码,因为以前的软件包正在贬值。但我不想重写我以前的所有代码(这是预异步的),因为这需要很长时间......
  • 据我所知,新的sdk返回Promise,我们需要使用await调用函数

标签: node.js azure azure-cosmosdb azure-blob-storage azure-sdk


【解决方案1】:

对于任何返回 promise 的方法,你仍然可以使用回调方法:

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

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2019-12-16
    • 2022-10-09
    • 1970-01-01
    • 2013-07-22
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多