function getAuthSecrets() {
return new Promise((resolve, reject) => {
let authSecrets = NamespaceManager.getNamespace('******).get('authSecrets');
if (!authSecrets) {
sm.getSecret(authConfig.secretName).then((secret) => {
NamespaceManager.getNamespace('cls2_context').set('authSecrets', secret);
resolve(secret);
}).catch((error) => {
reject(error);
});
} else {
resolve(authSecrets);
}
});
}
这里叫它:
if (username && password) {
getAuthSecrets().then(secrets => {
通过调用getAuthSecret将返回什么?
[authSecrets
或secret
,取决于要执行对resolve
的调用。
您想要return resolve(...)
避免编写试图解决两次的代码。
您正在捕获然后立即拒绝,这表明您的设备比需要的复杂。您可以使用Promise.resolve
:
function getAuthSecrets() {
const authSecrets = NamespaceManager.getNamespace('******).get('authSecrets');
return authSecrets ? Promise.resolve(authSecrets) :
sm.getSecret(authConfig.secretName).then((secret) => {
NamespaceManager.getNamespace('cls2_context').set('authSecrets', secret);
return Promise.resolve(secret);
})
});
}