問題タブ [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 - nodejs koa co-busboy を使用したファイルのアップロード
KOA を使用してファイルをアップロードするときに、 co-busyboyを使用してファイル フィールドを解析します。公式の例は次のようになります。
何らかの理由で、すべての「部分」ストリームを配列に保存し、すべてのファイル ストリームがフェッチされたときに実際のファイル書き込みを実行したいと考えています。すなわち:
問題は、whileループが継続しないことです。part.pipeを呼ばないとループが止まってしまうようです。
では、while ループを継続させるにはどうすればよいでしょうか。
javascript - ES6 クラスとジェネレーター関数を使用するときに「self = this」ハックを使用しないようにするにはどうすればよいですか?
明示的な .bind(this) を使用しようとしましたが、うまくいきませんでした。また、ここではアロー関数が機能しないことも知っています。
javascript - promise を使用してデータベース操作を待機する
データベースに接続して値を取得する別の関数を呼び出す関数があります。その値はデータベース上の別のトランザクションに使用されるため、実行が完了するまで先に進むことはできません。
yield
そのメソッドの完了を判断promise
し、応答を解決または拒否するために使用しています。これが私がやっている方法です:
このエラーが発生しています:
編集
接続文字列:
javascript - ジェネレーターへのコールバックとyieldを使用して、規則node.js関数を変換する
私は koa.js が初めてで、とても気に入り、プロジェクトを開始しました。SMS送信にtwilioを使用する必要があります。
twilio パッケージのほとんどの呼び出しは、この構造に従います。
ジェネレーター関数内に配置するように変更するにはどうすればよいですか?どの時点でyieldキーワードを使用しますか?
Coライブラリの使用を提案する回答があれば、コードとビットの説明を添えて例を提供してください。
node.js - 「co」を使用してコールバックをラップして非同期にする適切な方法は?
それは 2016 年のことで、Node は v4 から ES6 をほぼ完全にサポートしており、Promises は 0.12 から存在しています。コールバックをほこりの IMO に残す時が来ました。
私は、多くの非同期操作 (http 要求とユーザー入力) を活用するcommander.jsベースの CLI util に取り組んでいます。Commanderaction
を async 関数でラップして、プロミスとして扱うことができるようにし、ジェネレーターをサポートしたいと考えています (co-prompt
ユーザー入力に使用しているライブラリに役立ちます)。
CB をco
次の 2 つの方法でラップしてみました。
1)
program.command('myCmd')
.action(program => co(function* (program) {...})
.catch(err => console.log(err.stack)) );
と
2)program.command('myCmd').action(co.wrap(function* (program) { .. }));
1) の問題は、program
パラメーターが渡されないことです
2)の問題は、エラーが飲み込まれることです...
多くの http リクエストを含み、ライブラリを使用してユーザー入力を待機している私のユースケースでは、より優れたコードが生成されるため、これを機能させたいと思っていco-prompt
ます..
program.Command.prototype.action
おそらく何らかの形でラップする方が良い選択肢ですか?
ありがとう!