タグ付けされた質問 「settimeout」

setTimeoutはグローバルJavaScriptメソッドであり、特定の遅延後に特定の関数またはコードの一部を実行するために使用されます。

28
パラメータをsetTimeout()コールバックに渡すにはどうすればよいですか?
次のようなJavaScriptコードがあります。 function statechangedPostQuestion() { //alert("statechangedPostQuestion"); if (xmlhttp.readyState==4) { var topicId = xmlhttp.responseText; setTimeout("postinsql(topicId)",4000); } } function postinsql(topicId) { //alert(topicId); } topicId定義されていないエラーが発生するsetTimeout()関数を使用する前にすべてが機能していました。 私は自分の欲しいpostinsql(topicId)機能がいくつかの時間後に呼び出されます。私は何をすべきか?

10
非同期機能+ await + setTimeoutの組み合わせ
私は新しい非同期機能を使用しようとしています。私の問題を解決することが将来的に他の人の役に立つことを願っています。これは機能している私のコードです: async function asyncGenerator() { // other code while (goOn) { // other code var fileList = await listFiles(nextPageToken); var parents = await requestParents(fileList); // other code } // other code } function listFiles(token) { return gapi.client.drive.files.list({ 'maxResults': sizeResults, 'pageToken': token, 'q': query }); } 問題は、whileループの実行速度が速すぎ、スクリプトが1秒あたりの送信リクエスト数が多すぎることです。そのため、リクエストを遅延させるスリープ機能を構築したいと思います。したがって、この関数を使用して他のリクエストを遅らせることもできます。リクエストを遅らせる別の方法がある場合は、お知らせください。 とにかく、これは動作しない私の新しいコードです。リクエストの応答は、setTimeout内の匿名非同期関数に返されますが、スリープ関数respに応答を返す方法がわかりません。最初のasyncGenerator関数に追加します。 async function asyncGenerator() …


6
引用符と括弧の有無によるsetTimeoutの違い
私はJavaScriptを学習していますが、JavaScriptのタイミングイベントについて最近学びました。W3Schoolsで知ったとき、今setTimeoutまで出会ったことのない奇妙な姿に気づきました。彼らは二重引用符を使用してから、関数を呼び出します。 例: setTimeout("alertMsg()", 3000); JavaScriptの二重引用符と単一引用符は文字列を意味することを知っています。 また、私はそのように同じことができることがわかりました: setTimeout(alertMsg, 3000); 括弧が付いている場合はそれを参照しており、括弧がない場合はコピーされます。引用符とかっこを使用していると、頭がおかしくなります。 これらの3つの使用方法の違いを誰かに説明してもらえたら嬉しいですsetTimeout。 括弧付き: setTimeout("alertMsg()", 3000); 引用符と括弧がない場合: setTimeout(alertMsg, 3000); そして、3番目は引用符のみを使用しています。 setTimeout("alertMsg", 3000); 注意:setTimeout参照のためのより良い情報源はMDNです。



4
関数内でこのsetIntervalをクリアするにはどうすればよいですか?
通常は、間隔を変数に設定してそれを次のようにクリアしますvar the_int = setInterval(); clearInterval(the_int);が、コードが機能するように無名関数に入れます。 function intervalTrigger() { setInterval(function() { if (timedCount >= markers.length) { timedCount = 0; } google.maps.event.trigger(markers[timedCount], "click"); timedCount++; }, 5000); }; intervalTrigger(); どうすればこれをクリアできますか?私はそれを試しvar test = intervalTrigger(); clearInterval(test);て、確かめようとしましたが、それはうまくいきませんでした。 基本的に、Googleマップがクリックされたときにトリガーを停止するには、これが必要です。 google.maps.event.addListener(map, "click", function() { //stop timer });

6
Chrome:タイムアウト/間隔がバックグラウンドタブで中断されましたか?
私はこのテストをsetTimeout使用して精度をテストしていました。今、私は(予想どおり)setTimeoutあまり正確ではないことに気付きましたが、ほとんどのアプライアンスでは劇的に不正確ではありません。Chromeでテストを実行し、バックグラウンドタブで実行した場合(つまり、別のタブに切り替えてそこを参照)、テストに戻り、結果を検査する(テストが終了した場合)と、劇的に変化します。タイムアウトの実行が大幅に遅くなっているようです。FF4またはIE9でテストされたが、これは発生しなかった。 したがって、Chromeはフォーカスのないタブでjavascriptの実行を一時停止または少なくとも遅くするように見えます。件名のネットで多くを見つけることができませんでした。これは、たとえばXHR呼び出しを使用してサーバーで定期的にチェックするなど、バックグラウンドタスクを実行できないことを意味しますsetInterval(私がと同じ動作をするのsetIntervalではないかと思われます。時間があれば、テストを作成します)。 誰かがこれに遭遇しましたか?この一時停止/速度低下の回避策はありますか?それをバグと呼びますか?そのように報告しますか?


6
TypeScript-setTimeoutの正しいバージョンを使用(ノードとウィンドウ)
私はいくつかの古いTypeScriptコードを最新のコンパイラバージョンを使用するようにアップグレードしていますが、への呼び出しで問題が発生していますsetTimeout。このコードはsetTimeout、数値を返すブラウザの関数を呼び出すことを想定しています。 setTimeout(handler: (...args: any[]) => void, timeout: number): number; ただし、コンパイラーはこれを代わりにノード実装に解決し、NodeJS.Timerを返します。 setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; このコードはノードでは実行されませんが、ノードのタイピングは他のものへの依存関係として取り込まれます(不明)。 setTimeout必要なバージョンを選択するようにコンパイラーに指示するにはどうすればよいですか? 問題のコードは次のとおりです。 let n: number; n = setTimeout(function () { /* snip */ }, 500); これにより、コンパイラエラーが発生します。 TS2322:タイプ 'Timer'はタイプ 'number'に割り当てることができません。

7
大きなミリ秒の遅延値でsetTimeout()が「中断」するのはなぜですか?
大きなミリ秒の値をに渡すと、予期しない動作が発生しましたsetTimeout()。例えば、 setTimeout(some_callback, Number.MAX_VALUE); そして setTimeout(some_callback, Infinity); どちらも、遅延として大きな数の代わりにsome_callbackパスしたかのように、ほぼ即座に実行さ0れます。 なぜこれが起こるのですか?

7
setTimeout / clearTimeoutの問題
スタートページに行くようなページを作ってみます。10秒間非アクティブ(ユーザーがどこもクリックしていない)。残りはjQueryを使用していますが、テスト関数のset / clearは純粋なJavaScriptです。 私の欲求不満の中で、私はこの関数のようなものになり、ページ上の任意のクリックで呼び出すことができると思いました。タイマーは正常に起動しますが、クリックしてもリセットされません。最初の10秒以内に関数が5回呼び出されると、5つのアラートが表示されます... clearTimeoutなし... function endAndStartTimer() { window.clearTimeout(timer); var timer; //var millisecBeforeRedirect = 10000; timer = window.setTimeout(function(){alert('Hello!');},10000); } だれかがトリックを実行するいくつかのコード行を取得しましたか?-任意のクリック停止で、タイマーをリセットして開始します。-タイマーがヒットしたとき。10秒で何かします。

6
ReactアプリのsetInterval
私はまだReactでかなり新しいですが、ゆっくりと作業を続けており、行き詰まっていることに遭遇しました。 私はReactで「タイマー」コンポーネントを構築しようとしていますが、正直に言うと、これが正しく(または効率的に)行われているかどうかわかりません。以下の私のコードでは、私は、オブジェクトを返すように状態を設定{ currentCount: 10 }し、いじるされているcomponentDidMount、componentWillUnmountと、render私は唯一の10から9に「カウントダウン」に状態を得ることができます。 2つの部分からなる質問:何が問題になっていますか?そして、(componentDidMount&を使用するよりも)setTimeoutを使用するより効率的な方法がありますcomponentWillUnmount)ますか? 前もって感謝します。 import React from 'react'; var Clock = React.createClass({ getInitialState: function() { return { currentCount: 10 }; }, componentDidMount: function() { this.countdown = setInterval(this.timer, 1000); }, componentWillUnmount: function() { clearInterval(this.countdown); }, timer: function() { this.setState({ currentCount: 10 }); }, render: function() { var displayCount …

6
jqueryホバーイベントを遅延しますか?
jqueryのホバーイベントを遅らせたいのですが。ユーザーがリンクまたはラベルにカーソルを合わせると、ファイルから読み取っています。ユーザーが画面上でマウスを動かしているだけの場合に、このイベントがすぐに発生するのは望ましくありません。イベントの発生を遅らせる方法はありますか? ありがとうございました。 コード例: $(function() { $('#container a').hover(function() { $('<div id="fileinfo" />').load('ReadTextFileX.aspx', {filename:'file.txt'}, function() { $(this).appendTo('#info'); } ); }, function() { $('#info').remove(); } }); }); 更新: (1/14/09) HoverIntentプラグインを追加した後、上記のコードを次のように変更して実装しました。実装は非常に簡単です。 $(function() { hiConfig = { sensitivity: 3, // number = sensitivity threshold (must be 1 or higher) interval: 200, // number = milliseconds …

2
setTimeoutから約束をする方法
これは現実の問題ではなく、約束がどのように作成されるかを理解しようとしているだけです。 setTimeoutのように何も返さない関数を約束する方法を理解する必要があります。 私が持っていると仮定します: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); の準備ができたasync後に戻ることができるプロミスをどのように作成setTimeoutしcallback()ますか? 私はそれをラップするとどこかに連れて行くと思っていました: function setTimeoutReturnPromise(){ function promise(){} promise.prototype.then = function() { console.log('timed out'); }; setTimeout(function(){ return ??? },2000); return promise; } しかし、これ以上は考えられません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.