ホームページ >ウェブフロントエンド >jsチュートリアル >「setTimeout」関数呼び出しがすぐに実行されるのはなぜですか?

「setTimeout」関数呼び出しがすぐに実行されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-15 13:25:03608ブラウズ

Why is my `setTimeout` function call executing immediately?

setTimeout によってスケジュールされた関数呼び出しがすぐに実行されるのはなぜですか?

プロキシ サーバーをテストする試みとして、crawl() という名前の関数が考案されました。この関数の目的は、約 10 秒間隔で doRequest() を呼び出すことです。ただし、setTimeout() を使用しているにもかかわらず、関数はすぐに呼び出されます。

これを解決するには、3 つの実行可能な解決策があります。

  • 順序を変更する引数:

    setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
  • 評価可能な文字列を使用します:

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
  • Pass匿名関数:

    (function(u, p, t) {
      setTimeout(function() { doRequest(u, p); }, t);
    })(url, proxys[proxy], proxytimeout);

以上が「setTimeout」関数呼び出しがすぐに実行されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。