nodejs中promise中的resolve有什么用

What is the use of resolve in promise in nodejs

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 会返回什么?

authSecretssecret,具体取决于对 resolve 的调用。

您想 return resolve(...) 避免编写尝试解析两次的代码。

你抓住然后立即拒绝是一个迹象,表明你的机器比它需要的更复杂。您可以使用 Promise.resolve:

将值提升到 Promise 上下文
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);
       })
    });
}