node.js - nodejs の co モジュールが自己実行する yield
伊谢尔伦
伊谢尔伦 2017-05-16 13:35:43
0
4
691

私のコードは次のとおりです

リーリー

予想される実行結果、コンソールには 1、2、3 が出力されるはずです

しかし、プログラムを実行すると、エラーが報告されました

これは私のものだと言うべきですyield后面应该跟function但是上面的demo中我的yield后面跟的已经是function 期待される出力がないのはなぜですか?

2 番目の書き方:

リーリー

coすでにジェネレーター関数を受け入れています。上記の書き方ではコンソールに1,2,3を出力できません

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(4)
漂亮男人

あなたのyield后面跟的不是are这个函数,而是are执行后的返回值。
其实它等于yield undefined、これがエラーの原因です。

いいねを押す +0
某草草

リーリー

いいねを押す +0
伊谢尔伦

通常の機能はサポートされていません

いいねを押す +0
PHPzhong

見てくださいco库的源码就好,报错是co库报出来的,原因是因为楼上说的返回了undefined、具体的なエラーコードは次のとおりです:

リーリー

isPromise检测是否为Promiseco库先尝试将yield后转换为Promise,具体参见toPromise機能:

リーリー

undefined,所以最终toPromise返回了undefined,检测不是Promise に渡されたため、エラーがスローされました。

出力がない理由については1,2,3的原因,是因为yield后面的关系,yield后面是要接受函数作为参数,并且要执行这个函数的,所以yield通常、その後に非同期操作が続きます。この関数はコールバック関数ですが、その関数なので、次のように変更してください:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート