首页 > 解决方案 > 为什么 Azure KeyVault getSecret 返回 Promise?

问题描述

我在此链接上遵循了 Microsoft 教程:https ://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-node但我希望将它们作为单独的函数而不是将它们放入一项主要功能。

这就是我所拥有的, setSecret 工作正常但 getSecret 正在返回 Promise ?

这是我的代码截图的链接

标签: node.jsazureazure-keyvault

解决方案


两者都getSecret返回setSecreta Promise,因为它们是需要向 Key Vault 服务发出 HTTP 请求的异步方法。

如果您要尝试以下操作:

const secretPromise = client.setSecret(secretName, secretValue);

您会注意到这secretPromisePromise<KeyVaultSecret>按照API 文档

这使您可以等待设置秘密取回新设置的秘密:

const secret = await client.setSecret(secretName, secretValue);

请注意,如果不等待setSecret呼叫成功,您将无法:

  • 获取新创建的秘密(除非你运气好)
  • 如果失败,将收到通知并处理任何错误setSecret(您可以通过使用无效的 Key Vault URL 创建秘密客户端并运行这两个函数来验证这一点 -azureSetSecret将声称成功但azureGetSecret会抛出错误)

推荐阅读