在循环内返回promise不会停止循环

时间:2018-06-25 08:09:05

标签: node.js asynchronous es6-promise

以下方法应返回被拒绝的 OR 或已解决的承诺,但似乎都返回:

function isNotAlreadyRegistered(newsletterJsonArray, parsedJson){
const emailAsId = parsedJson["email"];

    newsletterJsonArray.forEach(function(entry) {
        if( entry["email"] == emailAsId){
            console.log("User already registered.");
            return Promise.reject();
        }
    });
    console.log("User not registered.")
    return Promise.resolve();
}

该方法记录两条消息:

  1. “用户已注册。”
  2. “用户未注册。”

所以在下面,我无法履行承诺。我错过了哪一点?

1 个答案:

答案 0 :(得分:1)

您无法通过返回任何内容来停止<button type="button" onClick = "document.getElementById('text').style.width = '100%';">BUTTON TEXT</button> <p id="text" style="width: 400px;"></p> 循环。停止它的唯一方法是抛出一个错误,这是不建议您执行逻辑的方法。

您可以改用Array.prototype.some

forEach