承诺所有的会议方法

时间:2016-08-21 15:03:38

标签: javascript promise bluebird

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

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) => {

1 个答案:

答案 0 :(得分:0)

没有特别的理由将promises传递给显式声明的数组,然后将它们传递给Promise.all(),因此很难防止第二个选项比第一个选项“更好”。

事实上,你可以很容易地说第二个选项只是创建一个包含中间数组的不必要的命名变量,并进行不必要的.push()函数调用。

最后,这里没有绝对的对错。这仅仅是对编码风格的看法问题。代码审查通常是部分可辩护的逻辑和部分审稿人的意见。看起来你只是遇到了一些观点,即审稿人的意见与你不同。

如果你想要推迟这样的评论问题,那么你应该让他们去辩解为什么他们的方法必然比你的第一种方法更好。