Javascript 我可以使用三元运算符来处理承诺中的错误吗?

Javascript 我可以使用三元运算符来处理承诺中的错误吗?,javascript,ecmascript-6,es6-promise,Javascript,Ecmascript 6,Es6 Promise,是这样的: function gets3Objects(eventsArray) { return new Promise((resolve, reject) => { s3.listObjects(params, (err, data) => { err ? reject(err) : resolve(eventsArray.forEach((file) => { params.Key = file;

是这样的:

function gets3Objects(eventsArray) {
  return new Promise((resolve, reject) => {
    s3.listObjects(params, (err, data) => {
      err
        ? reject(err)
        : resolve(eventsArray.forEach((file) => {
          params.Key = file;
        }));
    });
  });
}
被认为是良好做法? 如果没有,那么除了javascript承诺中的错误处理之外,还有什么更好的选择呢?

您可以,但不应该。三元运算符适用于需要表达式的情况,即需要将结果存储或分配给某个对象的情况。否则,像这里一样,您应该使用普通的if/else语句


这是一个承诺与三元运算符的适当性无关

这是一个很好的实践,但您的eventsArray.forEach返回未定义,这是您想要做的吗?也写在参数上?我个人喜欢if err return rejecterr;作为第一行,因为这是错误逻辑。如果您谈论的是良好实践,您可以使用AWS SDK的.promise函数,这将解决整个问题。否则,在这一点上我和基思是一致的,尽管我通常会被拒绝;返回@编码触发比你需要的{…}…没关系,因为他用它来解决/拒绝允诺如果允诺可以通过计算表达式并调用/分配结果来解决,这将是合适的,但事实并非如此。@Hitmands问题是,这是好的实践吗,如果在这种情况下不起作用。我认为这很糟糕。。