关于同步性/异步性假设的最佳实践

时间:2012-02-14 18:55:49

标签: javascript node.js

关于同一主题,我有两个问题取决于视角。

假设有一个函数接受一个接收执行函数返回值的回调函数:

function myFunction( callback ) {
    //do something
    callback( something );
}

现在有人调用此函数:

myFunction( function( something ) {
    console.log( 'a' );
} );

console.log( 'b' );

我的观点是: 是否总是为用户(调用函数的用户)保存事件'a'和'b'的顺序?结果:依赖于确切的行为,它被认为是不好的编码风格吗? (不是谈论runnig时间,而是关于同步性或异步性!)有人可能认为myFunction是异步的,因此'b'必须在'a'之前总是

反过来说: 作为设计某种功能的人,如果没有可预测的顺序,它被认为是不好的编码风格吗?也许有必要等待某个事件发生,导致异步回答,或者可能没有等待这个确切的动作,因此不需要异步性。 在这种情况下,添加process.nextTick(...)以始终具有相同的行为会是最好的吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

通常,您应该进行编码以使其无关紧要。但是,有些情况下必须延迟发射事件,例如,如果某些事情在构造函数中发生了自身事件 - 那时你就无法听到它。