問題タブ [yield-keyword]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1636 参照

javascript - どのような場合に yield を使用する必要があり、どのような場合に yield* を Koa.js で使用する必要がありますか?

koa のサンプル、ドキュメント、およびミドルウェアを参照すると、両方の形式yieldが使用されていることに気付きましたが、特に違いはありませんでした。最も極端なケースは koa-mount で、サンプル コードyield next;フォームを使用し、パッケージ自体yield*数回使用します。他のパッケージ ( koa-viewsなど) もこのyield nextフォームを使用します。

言語で定義されている 2 つの形式の違いは理解していますが、koa のコンテキストでそれらが同じ意味で使用されている理由と、どちらを使用するのが正しいのかはわかりません。

編集 29/5

さらに調査した結果、koa は co の上に構築されており、co は複数のタイプの非同期結果 (サンク、Promises...) を処理できるため、両方が合法である可能性があることを理解していますが、私はまだ各シナリオでどのフォームを使用するかを決定するのにどのガイドラインが役立つかわかりません。

0 投票する
4 に答える
1197 参照

python - Python で yield 関数に括弧が必要ないのはなぜですか?

yieldPython では、ジェネレーターを作成するために使用される関数を何度も見てきました。this とprint関数はどちらも、技術的にはどちらも値を返すため、メソッドのアクションを実行します。ただし、Python 2 から Python 3 への変更中に、print関数は通常のメソッド呼び出しのように括弧を取得しましたが、yield は同じままでした。また、は予約済みメソッドの紫ですが、yield予約済みキーワードは黄色がかった色になります。メソッドと見なされず、括弧構文を使用しないのにこのように色付けされているのprintはなぜですか?yield

(同様に、なぜ にreturnも括弧がないのですか?)

いくつか追加させてください。yield と continue には、他の多くの言語でも括弧が付けられていません。予約されている以外に何が違うのか知りたかっただけです。括弧を取得する他の多くの予約済みメソッドがあります。

0 投票する
2 に答える
1434 参照

javascript - javascript でネストされた関数をジェネレーターとして使用する方法 (「内部」yield を使用)

8、偽を返します。次に 6、偽。その後、未定義、真。一方

undefined,true; が 3 回表示されます。

d1 の隠し構造 (内部関数として) が必要なので、最初のサンプルと同じ結果を得るにはどうすればよいですか?

0 投票する
1 に答える
488 参照

jshint - jshint は、co での yield 後にセミコロンが欠落しているログを記録します

linting に JSHint を使用していますが、yieldステートメントのジェネレーター内で co を使用すると問題が発生しました: line 18 col 28 Missing semicolon.

.jshintrc ファイルは次のようになります。

どうすれば修正できますか?

0 投票する
1 に答える
379 参照

python - Python でジェネレーターの新しいインスタンスを作成する

広告を含むページへのリンクが多数あるページをスクレイピングしようとしています。ナビゲートするために現在行っていることは、広告のリストを含む最初のページに移動し、個々の広告のリンクを取得することです。その後、データベースからデータを取得して、リンクをスクレイピングしていないことを確認します。以下のコードは、基本的にすべての href 属性を取得し、それらをリストとして結合します。その後、すでにスクレイピングしたページのデータベースに保存したリンクのリストと照合します。したがって、基本的には、まだスクレイピングしていないリンクのリストが返されます。

そのページのすべてのリンクをスクレイピングすると、次のページに移動します。_scrape_home_urls() を再度呼び出して再利用しようとしました

前もって感謝します。

0 投票する
1 に答える
1185 参照

angular - Angular 2 yield 予約語

A2 メソッドでジェネレーターを使用したいのですが、次のエラーがスローされます: reserved word in strict mode。(問題はyieldステートメントにあります)。

ng2 でジェネレーターを使用するにはどうすればよいですか? 助けてくれてありがとう!

私のコードは次のようになります。