2016-03-29 20 views
0

JavaScript関数の実行に時間がかかりすぎたら中止できますか?もしそうなら、どうですか?実行に時間がかかりすぎると関数の実行を中止する

ie。私は同期doStuff()と呼んでおり、割り当てられた時間内にそれが戻らなければ、それは中断されて、実行が戻ったかのように続きます。

+0

おそらく...具体的なことなしには答えが不可能です。 – epascarello

+0

質問が広すぎる.. –

+0

'doStuff()'を変更して、消費した時間を追跡し、制限を超えた後に終了することができます。そうでなければ、いいえ、複数のスレッドやプロセスを制御することなく、ある関数を別の関数に割り込ませることはできません。一般にJavaScriptにはAPIはありません。 –

答えて

2

(同期関数をその関数内のコードから終了しない限り)同期コードではそのことを行うことはできません。しかし、あなたは優雅なやり方で望みを達成するために約束を使うことができます。これは関数を非同期に呼び出すようなもので、解像度は非同期なので、タイムアウト後に中断することができます。 David Walsh blogおよびon promisejsについては、how promises work on MSDNを参照してください。後でまた約束を中断するいくつかの例があります(Promise.raceコード参照)。あなたがそれを検索すると、インターネット上にたくさんの情報があります。

関連する問題