TypeScriptでasync/awaitを使ってみた
そういえば、今までTypeScriptのasync/awaitを使ってなかったので、使い方を軽くφ(..)メモメモ
TypeScript1.x系では、ES3/ES5向けのときはasync/awaitは使えないので、ちょっと敬遠してましたが、
Node.js環境だったら普通に使えるだろうし、、ということで使ってみました。
↓を参考にやってみました。
こんな風に、Promiseでくるんだ関数を用意しておくと、awaitできるようになります。
C#のasync/awaitと同様に、awaitが使えるのはasyncな関数の内部だけになるので注意。
index.ts
function wait(n: number) { return new Promise(done => setTimeout(() => done(n), n)); } async function main() { console.log("start"); for (var i=0; i<10; i++) { await wait(1000); console.log("next"); } } main();
tsconfigはこんな感じ。
"target": "es6"
として、ES6向けにトランスパイルするようにしています。
tsconfig.json
{ "compilerOptions": { "module": "commonjs", "target": "es6", "noImplicitAny": false, "sourceMap": true }, "exclude": [ "node_modules" ] }
こうすると、1秒間隔でnext
と表示されていきます。
非同期な処理でも、普通にfor分とかのループ処理と組み合わせて掛けたり、何かと便利に使えそうですね。