私のチームと私はあなたの最後の選択に落ち着きました:
function (x, y, z, cb) {
var err, data;
...
if (err) return cb(err);
...
return cb(err, data);
}
理由は単純明快です。1 つは、コールバックを "cb" に設定したことです。一貫性が非常に役立ちます。cb は何も返しませんが、見やすい行になります。コールバックを使用するたびに、return を確実に行いたいと思います。そうしないと、本当に厄介なエラーと "return cb(err);" が発生するからです。短く、読みやすく、一貫性があり、インデントのレベルをなくし、最も重要なことは探しやすいことです。
そして、これまたは他の同様の構造の習慣を身につけることができれば、コードを見て、先頭のリターンなしで迷子になった "cb(err)" がある場所を確認することが第 2 の性質になります。
そして、ところで、
process.nextTick(function () { return cb(err); });
よりも効率的です
setTimeout(function () { return cb(err); }, 0);
また、スタックを巻き戻すために nextTick コールバックが必要になる場合もあります。
はい、私たちは常に
return cb(err);
必要がないときでも。一貫性は良好です。