在循环内返回承诺不会停止循环

以下方法应该返回一个被拒绝一个已解决的承诺,但它似乎同时返回:

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. “用户未注册。”

所以在下面我无法处理承诺。我错过了哪一点?

尤里·塔拉班科

你不能通过forEach返回任何东西来停止循环。阻止它的唯一方法是抛出一个错误,这不是推荐的逻辑方法。

你可以用Array.prototype.some

function isNotAlreadyRegistered(newsletterJsonArray, parsedJson){
  const emailAsId = parsedJson.email;
  return newsletterJsonArray.some(function(entry) {
    return entry.email === emailAsId
  }) ? Promise.reject() : Promise.resolve();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

循环不会停止

来自分类Dev

For循环不会停止

来自分类Dev

For循环不会停止

来自分类Dev

不会停止的for循环

来自分类Dev

虽然循环不会停止

来自分类Dev

Golang for循环不会停止

来自分类Dev

虽然循环不会停止循环与异常

来自分类Dev

循环不会停止,导致溢出

来自分类Dev

循环不会停止,导致溢出

来自分类Dev

为什么此for循环不会停止

来自分类Dev

Python while循环不会停止

来自分类Dev

Javascript 动画循环不会停止

来自分类Dev

嵌入消息循环不会停止

来自分类Dev

在下划线中返回值每个循环不会停止该函数

来自分类Dev

C中的无限循环不会停止scanf

来自分类Dev

如果循环播放,音乐不会停止(true)

来自分类Dev

连续每个循环不会停止插入SQL Server

来自分类Dev

遍历日期时,while循环不会停止

来自分类Dev

Do ..虽然循环不会停止以等待uinput

来自分类Dev

输入后,C while循环不会停止运行

来自分类Dev

多重处理池无限循环(并行处理不会停止)

来自分类Dev

EOF之后Bash读取循环不会停止

来自分类Dev

当参数相等时,while循环不会停止

来自分类Dev

Nim游戏中的while循环不会停止

来自分类Dev

为什么异步方法中的while循环不会停止?

来自分类Dev

Python while循环永远不会停止,即使它应该

来自分类Dev

当循环条件为假时,脚本执行不会停止

来自分类Dev

While 循环不会停止遍历数组

来自分类Dev

事件循环-Infinte循环不会停止在Chrome中渲染管道,但会在Firefox中