私は再帰的な方法で自分自身を呼び出すjavascriptで書かれた関数を持っています:
function f(attempt){
if (attempt + 1 <= 10) {
setTimeout(f(attempt + 1),2000);
}
}
f(0);
理由は不明ですが、関数は事実上 10 回呼び出されますが、遅延はありません。setTimeout は関数 f をすぐに実行するようです。
ただし、これを行うと、すべて正常に動作します:
function f(attempt){
if (attempt + 1 < 10) {
setTimeout(function(){f(attempt + 1);},2000);
}}
f(0);
説明はありますか?このコードは Cucumber のテスト用に書かれているためですか?