そういえば、今までTypeScriptのasync/awaitを使ってなかったので、使い方を軽くφ(..)メモメモ
TypeScript1.x系では、ES3/ES5向けのときはasync/awaitは使えないので、ちょっと敬遠してましたが、
Node.js環境だったら普通に使えるだろうし、、ということで使ってみました。
↓を参考にやってみました。
こんな風に、Promiseでくるんだ関数を用意しておくと、awaitできるようになります。
C#のasync/awaitと同様に、awaitが使えるのはasyncな関数の内部だけになるので注意。
index.ts
function wait(n: number) {returnnew 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分とかのループ処理と組み合わせて掛けたり、何かと便利に使えそうですね。