node.js - 如何在没有异步的情况下使用 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
这可能吗?
我真的不想重组我所有的代码......
谢谢
解决方案
对于任何返回承诺的方法,您仍然可以使用回调方法:
blockBlobClient.upload().then((response) => {
// do something with the response...
});
推荐阅读
- python - 使用 python 请求从 Nextcloud 下载目录 (WebDav)
- python - 如何使用 Python 正确创建 JSON 文件?
- java - 关于复合运算符 Java 的转换问题
- jquery - 我如何在图表中同时选中和取消选中一个值
- javascript - ES6 / Lodash,如何检查对象是否包含给定请求的特定值?
- user-interface - 如何在 Flutter 中调用上滑面板?
- python - WIN10 或 ADB:显示已连接的 Android 设备
- java - Spark 提交无法运行访问 AWS S3 的 Java Spark 作业 [NoSuch 方法:ProviderUtils.excludeIncompatibleCredentialProviders]
- javascript - 显示 jquery 结果,数据在那里但不显示
- php - 在我的表单中单击按钮的问题