node小白,今天学习了下用Node写命令行工具。
然后有个TJ大神写的co包:
TJ
co
co(function* (){ yield setTimeout(function() { console.log(1); }, 5); yield setTimeout(function() { console.log(2); }, 1); });
最后这段代码执行的时候只输出了1。为什么没有输出2呢?
1
2
学习是最好的投资!
あなたの使用法は仕様に準拠していません。Co では、Promise、ジェネレーター、配列、オブジェクトの生成は許可されていますが、通常の関数の生成は許可されていません。最初の setTimeout を生成するときは、関数は正常に実行されますが、実行後にエラーが報告されます:
エラー報告は当然中断されるため、コードは実行を継続しません。なぜ上記のエラーが報告されるのかについては、ソースコードを注意深く読めば明らかです。
tj/co は完璧ではありません。hprose では tj/co の代わりに co を使用できます。紹介記事は次のとおりです:
https://segmentfault.com/a/11...
あなたの使用法は仕様に準拠していません。Co では、Promise、ジェネレーター、配列、オブジェクトの生成は許可されていますが、通常の関数の生成は許可されていません。
リーリー最初の setTimeout を生成するときは、関数は正常に実行されますが、実行後にエラーが報告されます:
エラー報告は当然中断されるため、コードは実行を継続しません。なぜ上記のエラーが報告されるのかについては、ソースコードを注意深く読めば明らかです。
tj/co は完璧ではありません。hprose では tj/co の代わりに co を使用できます。紹介記事は次のとおりです:
https://segmentfault.com/a/11...