authSecrets
или secret
, в зависимости от того, какой вызов resolve
будет выполнен.
Вы хотите return resolve(...)
, чтобы избежать написания кода, который пытается разрешить дважды.
То, что вы ловите, а затем сразу отказываете, является признаком того, что ваша техника более сложна, чем должна быть. Вы можете поднять значение в контекст Promise с помощью 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);
})
});
}