setTimeoutとqueue.pop()を使用していくつかのことをチェックし、何度も繰り返し実行する非同期関数があります。 いくつかのロジックがtrueになった後、キューにいくつかの要素が残っていても、関数を呼び出す必要はありません。ですから、次のような声明があります。Javascript async function:返すと先頭が短くなる
if (isWhatIneed(currentItem)) {
completed = true;
return;
}
私は探していたものを持っています。問題はそれ以来より多くのアイテムがキューに供給され、非同期的に実行され続けることです。
if (completed) {
console.log("already completed");
return;
}
これは(特にキューから複数のアイテムをポップし、実行を継続しないように、さらに何をやってからの呼び出しのスタック内の各実行を防ぐ:だから私は、その関数の最上部に追加しましたこれに対処するには)。
私の質問は、私は複数の返信文espを使って読んだことです。機能の最上位では貧弱な練習です。しかし、この場合、これは別の方法がありますか?私はif(!completed){// ...}で私の関数の全身を包み込むことができますが、これは全身をくぼんでいるので私にも似ています。早いリターンはありません。
おかげで、
ここで、関数の先頭にreturn文を置くことは貧弱な習慣であると読んだことはありますか?全身を包むよりもはるかに優れています。 –
私はMDNからそれを読んだと思うかもしれません。コメントありがとう! :-) –
私はJames 'opionionです。私はこれも聞いたことがあります。複数のリターンを持つのは悪いことですが、これはコードのパスを辿るのが難しくなるためですが、このような場合には、望ましいと思います。 –