問題タブ [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.
node.js - コアの動的ルート?
次のようなルートの配列があるとします。
彼らにとって最善の方法は何でしょうapp.use
か?私は次koa-route
のように(私のミドルウェアとして)それをやろうとしました:
しかし、それは機能していないようです(プレーンも試しましたroutes.forEach
)。私は何を間違っていますか?
javascript - mocha+chai と co を併用する
chai.expect
アサーションが失敗すると、通常はテストに失敗し、否定的な結果がテスト ランナーのレポートに追加されます (この場合は) mocha
。
ただし、 を使用してラップされたジェネレーター関数を使用するco.wrap()
と、以下に示すように、奇妙なことが起こります。アサーションがパスすると、すべてが正常に実行されます。ただし、アサーションが失敗すると、テストはタイムアウトします。
+co
と一緒に使用するにはどうすればよいですか?mocha
chai
解決:
以下の@Bergiが指摘しているように、co.wrap()
によってスローされた例外を飲み込み、それを見つけるexpect()
ために必要な場所までバブルアップできないために問題が発生しました。mocha
co()
解決策は、以下に示すように、代わりにを使用し、そのコールバックco.wrap()
を追加.catch()
して渡すことでした。done
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 では問題なく動作します。
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 モジュールを作成しました。
事前にthx。
javascript - ジェネレーター関数内から Final Promise スコープを終了する
プロミスの結果を元の呼び出し元に返して返すのに問題があります。
store.js
storeGateway.js
データベース.js
上記のすべての console.log にデータが出力されています。storeGateway の find() メソッドからストアを返す方法がわかりません。プロミスの結果 (.then()) でストア配列を受け取っているためです。
(コード内の私のコメントを参照してください。見つかったストアをプロミスで返し、store.js の検索ジェネレーター関数から上流に戻そうとしています)。
javascript - Node.js で Co と co.wrap の動作が異なる
Koa のフロー メカニズムがどのように機能するかはある程度理解できましたが (私はそう思います)、co と co.wrap のすべての違いを把握できていないようです。これは、予期しない動作を引き起こしているコードです。
このコードの出力は次のとおりです。
単純な co の使用の後に co.wrap の使用をラップしたことがわかります。2 回目の試行で が呼び出されないことは明らかですtypeGen
が、なぜそうなるのでしょうか? 2 つの結果が同一であってはなりませんか?
node.js - Socket.io + co: これが本来の使い方ですか?
http://socket.io/をcoで動作させようとしています。
コードでいくつかのタスクを非同期に実行しようとしています。
それがsocket.ioの仕組みです。co
今すぐミックスに追加したいと思います。私は次のことを試しました:
このエラーを取得します。SyntaxError: Unexpected strict mode reserved word
この:
私の質問は、これがどのように使用されることになっているのか、それとも私が見逃したものなのかということです。すべてをラップするのは非常に多くの余分なコードのように思えますか?
node.js - マングースはクエリを解決しません
次のクエリの何が問題なのかを理解するのに苦労しています。私は mongoose 4.1.10 と mongodb 3.0.6 を使用しています。
より具体的にUser.findOne({ "local.email": username });
は、決して解決されません。
コールバック アプローチを使用しようとしましたが、やはり結果が得られません。