承诺所有约定的方法

Promise all convention approaches

我们做了一些代码审查,之前的代码如下:

run:  () =>{

    var _this = this;
    return Promise.all([
        //Get  command
        cp.getCommand(constants.HB),
        //Find port
        cp.findPort()
        ]).spread((r1, r2) => {
        ...

代码审查后,我的同事建议将其更改为我不同意的以下内容 由于您需要添加不必要的代码(数组和推送)并且我不确定这是否更具可读性,您怎么看?

 run: function () => {

    var _this = this;

    var promiseArray = [];
    //Get  command
    promiseArray.push(cp.getCommand(constants.HB));
    //Find port
    promiseArray.push(cp.findPort());

    return Promise.all(promiseArray)
        .spread((r1, r2) => {

没有特别的理由在将承诺传递给 Promise.all() 之前将其放入显式声明的数组中,因此很难证明第二个选项比第一个选项 "better"。

事实上,您可以轻松地假设第二个选项只是创建了一个包含中间数组的不必要的命名变量,并进行了不必要的 .push() 函数调用。

归根结底,这里没有绝对的对错。这只是对编码风格的看法问题。代码审查通常部分是可辩护的逻辑,部分是审查者的意见。看来您只是 运行 发表了一些意见,而审稿人的意见与您的意见不同。

如果你想在这样的评论问题上退缩,那么你应该要求他们解释为什么他们的方法一定比你的第一种方法更好。