TypeScriptでスリープ機能を実装するにはどうすればいいですか? 質問する

TypeScriptでスリープ機能を実装するにはどうすればいいですか? 質問する

TypeScript を使用して Angular 2 で Web サイトを開発していますが、機能を実装する方法があるかどうか知りたいですthread.sleep(ms)

私のユースケースは、フォームを送信してから数秒後にユーザーをリダイレクトすることです。これは JavaScript では非常に簡単ですが、TypeScript でどのように実行すればよいかわかりません。

ベストアンサー1

現在は TS から ES6 へのコンパイルのみがサポートされているため、ES5 のサポートについてはasyncTypeScript 2.0 を待つ必要があります。await

次のようにして遅延関数を作成できますasync

function delay(ms: number) {
    return new Promise( resolve => setTimeout(resolve, ms) );
}

そしてそれを呼び出す

await delay(1000);

ちなみに、Promise直接 await することもできます:

await new Promise(f => setTimeout(f, 1000));

関数await内でのみ使用できることに注意してください。async

それができない場合 (たとえば、Node.js アプリケーションを構築している場合)、匿名関数にコードを配置しますasync。次に例を示します。

    (async () => { 
        // Do something before delay
        console.log('before delay')

        await delay(1000);

        // Do something after
        console.log('after delay')
    })();

TS アプリケーションの例:https://github.com/v-andrew/ts-template

古いJSでは、

setTimeout(YourFunctionName, Milliseconds);

または

setTimeout( () => { /*Your Code*/ }, Milliseconds );

ただし、すべての主要ブラウザがasync/ をサポートしているためawait、あまり役に立ちません。

更新: TypeScript 2.1 がリリースされましたasync/await

PromisePromise がネイティブで利用できない ES5 にコンパイルするときには実装が必要であることを忘れないでください。

追伸

あなたがしなければならない関数をエクスポートする元のファイル以外で使用する場合。

おすすめ記事