私はメンテナなので、 IcedCoffeeScriptのプラグを作りたいです。Seqのようなソリューションでうまくいくことができますが、一般的には、関数呼び出しを使用して制御フローをエンコードすることになります。そのアプローチを書き、維持するのは難しいと思います。IcedCoffeeScriptを使用すると、簡単な順次操作が簡単になります。
console.log "hello, just wait a sec"
await setTimeout defer(), 100
console.log "ok, what did you want"
しかし、もっと重要なのは、非同期コードと標準の制御フローの任意の組み合わせを処理することです。
console.log "Let me check..."
if isRunningLate()
console.log "Can't stop now, sorry!"
else
await setTimeout defer(), 1000
console.log "happy to wait, now what did you want?"
resumeWhatIWasDoingBefore()
また、ループはうまく機能します。シリアルディスパッチは次のとおりです。
for i in [0...10]
await launchRpc defer res[i]
done()
そして、これが並列ディスパッチです。
await
for i in [0...10]
launchRpc defer res[i]
done()
ICSは、非同期コードのシーケンシャルチェーンをスムーズにするだけでなく、可能な限り並行して実行することをお勧めします。コードまたは同時実行要件を変更する必要がある場合、変更は最小限であり、完全な書き換えではありません(標準のJS / CSまたは一部の同時実行ライブラリの場合のように)。