回调保证会在ES6类构造函数中被解决还是被拒绝?

时间:2019-07-10 07:08:16

标签: javascript node.js callback

我很难理解为什么使用回调,该回调总是返回一个空对象。并将参数传递给此回调。

https://github.com/ghdna/cognito-express/blob/master/lib/strategy.js#L20

我假设这保证了承诺的解决或拒绝。

.parent{
    .second{
        .third{
            button{
                background: red;

                @include find('.second','.select'){
                    background: green;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

在您自己的代码中,您永远不会那样做:一旦使用了promises,使用老式的回调系统将毫无益处。

显然,该API的作者希望通过init方法提供基于回调的支持和基于Promise的支持,以便该API的客户端仍可以选择或保持与该API的先前版本的兼容性。可能仅支持回调样式的API。

现在init方法采用一个 required 回调参数:如果不传递该参数,则执行callback()时会出现异常。这是API的弱点,因为现在构造函数代码(属于API本身)需要将回调参数传递给自己的init调用。尽管不需要“回调”该构造函数,但它必须提供有效的回调,因此必须传递一个虚拟的回调:

callback => {}

对此有几条评论:

  • 这不是返回空对象的函数。这是一个执行空语句块的函数。

  • 该函数采用称为callback的参数。可能作者认为这会有助于理解此回调是...回调,但是老实说,我发现调用该函数callback parameter 会令人困惑: that 不是回调-它是回调的未使用参数。