問題タブ [co]

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 に答える
1686 参照

node.js - コアの動的ルート?

次のようなルートの配列があるとします。

彼らにとって最善の方法は何でしょうapp.useか?私は次koa-routeのように(私のミドルウェアとして)それをやろうとしました:

しかし、それは機能していないようです(プレーンも試しましたroutes.forEach)。私は何を間違っていますか?

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

javascript - mocha+chai と co を併用する

chai.expectアサーションが失敗すると、通常はテストに失敗し、否定的な結果がテスト ランナーのレポートに追加されます (この場合は) mocha

ただし、 を使用してラップされたジェネレーター関数を使用するco.wrap()と、以下に示すように、奇妙なことが起こります。アサーションがパスすると、すべてが正常に実行されます。ただし、アサーションが失敗すると、テストはタイムアウトします。

+coと一緒に使用するにはどうすればよいですか?mochachai



解決:

以下の@Bergiが指摘しているように、co.wrap()によってスローされた例外を飲み込み、それを見つけるexpect()ために必要な場所までバブルアップできないために問題が発生しました。mocha

co()解決策は、以下に示すように、代わりにを使用し、そのコールバックco.wrap()を追加.catch()して渡すことでした。done

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

javascript - co.wrap yield Promise throw TypeError: undefined is not a function

co.wrap で Promise を作成しましたが、TypeError: undefined is not a function がスローされます(エラー行はyield pm2.connect(); です) 。

app.js:

pm2.js で、Promise を返す関数をラップしました。コードは次のとおりです。

それから私は試します

app.js では問題なく動作します。

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

node.js - 出力を返すyieldableジェネレーターにラップされたnodejs child_process.spawnSyncまたはchild_process.spawn

しばらくの間、私は今のところうまくいかない何かに到達しようとしています.

nodejs では、対話型の sh-command を実行し、コマンドが終了した後に sh-command の出力を処理するのが好きです。私は、インタラクティブなシェル コマンドの実行をラップし、シェル コマンドの出力を返す生成可能な生成関数を作成するのが好きです。

アプローチ 1: shelljs

  • shelljs
  • 私はshelljsである程度成功しましたが、ある時点でそれ以上実行できなくなりました。
  • 質問 1: stdio を継承して shelljs 関数を生成できるようになるまで shelljs を取得することは可能ですか?

アプローチ 2: child_process.spawnSync

  • child_process.spawnSync
  • ついに私は child_process.spawnSync を発見し、少なくともインタラクティブなsh-commandsを問題なく実行できることに満足していましたoptions: { stdio: 'inherit' }
  • しかし、child_process.spawnSync の出力を取り戻す方法がわかりませんでした。
  • 質問 2: spawnSync を、child_process の出力を返すジェネレーター関数にラップする方法は?

アプローチ 3: co-child-process

  • co-child-processも試しました。
  • 実行されているようですが、標準入出力とは対話的ではありません。これに関して問題があります、私は本当に理解していません。
  • 質問 3: 誰かが私に説明したり、co-child-process が stdio inherit でどのように機能するかの例を投稿したりできますか?

アプローチ 4: bluebird で child_process.spawn() を約束する

  • child_process.spawn() が約束されている場合、私はブルーバードで問題を開きました

だから私の質問です。シェル コマンドの出力を返す生成可能なジェネレーター関数でラップできる対話型シェル コマンドを実行する方法の例を投稿してもらえますか? 私は新しいアプローチに対してオープンです。

フォークして貢献できるgithubで利用可能な npm モジュールを作成しました。

事前にt​​hx。

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

javascript - ジェネレーター関数内から Final Promise スコープを終了する

プロミスの結果を元の呼び出し元に返して返すのに問題があります。

store.js

storeGateway.js

データベース.js

上記のすべての console.log にデータが出力されています。storeGateway の find() メソッドからストアを返す方法がわかりません。プロミスの結果 (.then()) でストア配列を受け取っているためです。

(コード内の私のコメントを参照してください。見つかったストアをプロミスで返し、store.js の検索ジェネレーター関数から上流に戻そうとしています)。

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

javascript - Node.js で Co と co.wrap の動作が異なる

Koa のフロー メカニズムがどのように機能するかはある程度理解できましたが (私はそう思います)、co と co.wrap のすべての違いを把握できていないようです。これは、予期しない動作を引き起こしているコードです。

このコードの出力は次のとおりです。

単純な co の使用の後に co.wrap の使用をラップしたことがわかります。2 回目の試行で が呼び出されないことは明らかですtypeGenが、なぜそうなるのでしょうか? 2 つの結果が同一であってはなりませんか?

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

node.js - Socket.io + co: これが本来の使い方ですか?

http://socket.io/coで動作させようとしています。

コードでいくつかのタスクを非同期に実行しようとしています。

それがsocket.ioの仕組みです。co今すぐミックスに追加したいと思います。私は次のことを試しました:

このエラーを取得します。SyntaxError: Unexpected strict mode reserved word

この:

私の質問は、これがどのように使用されることになっているのか、それとも私が見逃したものなのかということです。すべてをラップするのは非常に多くの余分なコードのように思えますか?

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

node.js - マングースはクエリを解決しません

次のクエリの何が問題なのかを理解するのに苦労しています。私は mongoose 4.1.10 と mongodb 3.0.6 を使用しています。

より具体的にUser.findOne({ "local.email": username });は、決して解決されません。

コールバック アプローチを使用しようとしましたが、やはり結果が得られません。