以下方法应该返回一个被拒绝或一个已解决的承诺,但它似乎同时返回:
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();
}
该方法记录两条消息:
所以在下面我无法处理承诺。我错过了哪一点?
你不能通过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] 删除。
我来说两句