問題タブ [q]
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.
jquery - Q と jQuery を使用した Ajax 呼び出し
この問題は私を夢中にさせています。私は本当にばかげたことをしているに違いありませんが、それが何であるかわかりません。
Q promises ライブラリを jQuery で使用したいと考えています。私は Q のバージョン 0.9.6 と jQuery の 1.9.1 を持っています (両方とも bower 経由でインストールします)。
この議論は、(最後に)次のようなものが機能することを意味します。
これが jQuery バージョン 1.9.1 で Q を使用する方法であるかどうかは完全にはわかりません (promise に関して jQuery には多くの変更があったようです)。しかし、これを Firefox のコンソール (現在のページで読み込まれた Q と jQuery を使用) から起動すると、明らかに Ajax 呼び出しが正しく起動されます (Firebug はステータス コード 200 で返されることを意味します)。しかし、約束は拒否されたようです (私が知る限り)。
たとえば、次のようにします。
ステータスを拒否としてリストします。次のようなもので約束をトリガーすると:
メソッドに引数として渡されるものを見るとfail
、jQuery promise オブジェクトのように見えます (少なくとも私が知る限り)。失敗の「理由」)。
あらゆる順列や組み合わせを試しましたが、これ以上迷うのではなく、SO にアピールする必要があると考えました。
ここで何か助けていただければ幸いです。
node.js - ノード js は破滅のピラミッドを回避し、同時にメモリが増加します
私は socket.io ベースのサーバーを作成しており、運命のピラミッドを回避し、メモリを低く抑えようとしています。私はこのクライアントを書きました - http://jsfiddle.net/QUDXU/1/で実行しnode client-cluster 1000
ます。したがって、継続的なリクエストを行っている 1000 の接続。
サーバー側では、私がテストした3つの異なるソリューションを試しました。すべてを1時間実行した後、サーバーが使用するRAMに関する結果は次のとおりです。
- シンプルなコールバック - http://jsfiddle.net/DcWmJ/ - 112MB
- Qモジュール - http://jsfiddle.net/hhsja/1/ - 850MB以上
- 非同期モジュール - http://jsfiddle.net/SgemT/ - 1.2GB 以上
サーバーとクライアントは別のマシン上にあります。(Softlayer クラウド インスタンス)。ノード 0.10.12 および Socket.io 0.9.16
なぜこうなった?メモリを低く保ち、コードを読みやすくするための何らかのライブラリを使用するにはどうすればよいですか?
node.js - node.js で Q を使用して非同期関数間でパラメーターをチェーンする
両方の非同期関数に必要なパラメーターをチェーンするにはどうすればよいですか。
最初の関数fs.readFileは、ファイルの内容をコールバック関数で 2 番目のパラメーターとして返します。
マークされた 2 番目の関数は、この内容を最初のパラメーターとして必要とします。2 番目のパラメーターはオプションであり、オプション オブジェクトにすることができます。3 番目のパラメーターは、変換されたコンテンツを 2 番目のパラメーターとして提供するコールバックです。
現在、私はこのコードを試しました:
しかし、マークされた関数は、コールバック関数を 3 番目のパラメーターとして呼び出したときに 2 番目のパラメーターを必要とするため、機能しません。マークされた関数を正しく呼び出すために、2 番目のパラメーターを設定するにはどうすればよいですか?
jquery - AngularJS promise は、深くラップされた jquery $.post 呼び出しを取得しません
JavaScript ライブラリと AngularJS フロントエンドの両方を開発しています。JavaScript ライブラリは移植可能である必要があるため、AngularJS に依存することはできません。非常に標準的なサーブレット クエリ パターンを使用します。
このqueryService
関数は、ライブラリ内の他の関数によって呼び出されます。queryService
何も返さないことがわかります。コールバック関数が必要なすべてのアクションを実行することを期待しています。結果を promise オブジェクトの関数に返すために必要なコールバック関数がわかりませんthen()
。Angular サービス コードは次のとおりです。
コントローラーから呼び出しData.getColNamesFromDb()
て、promise オブジェクトを取得します。しかし、何をしようとしてもthen()
、DB から返されたものを関数に表示させることはできません。コントローラーは次のとおりです。
私は約束がどのように機能するかについて愚かなことを見逃していることを知っていますが、何がわかりません。コードでコメントした「オプション」のいくつかから、ランダムな方法を試して指を交差させているだけであることは明らかです。
c# - Unity C# スクリプトで System.Xml.Linq を使用するには?
UnityとC#を使用し、これらの行を試すと
このエラーが発生します
型または名前空間名
Linq' does not exist in the namespace
System.Xml'. アセンブリ参照がありませんか?
そのため、オンラインで多くの検索を行った結果、Linq が問題を引き起こす可能性があり、MonoDevelop に手動で参照を追加する必要があることがわかりました。そこで、そこに参照を追加しました (ソリューション ペインで [参照] を右クリックし、[参照の編集] をクリックして System.Xml.Linq を参照します)。
まだ運がない、
何か案は?
angularjs - Angular $q promise が解決されたかどうかを確認する方法
then()
プロミスを使用する場合、通常、継続コードを呼び出しとチェーンの動作に添付するだけであることを理解しています。
$timeout()
ただし、プロミスでラップされた非同期呼び出しを開始してから、元のプロミスがまだ完了していない場合にのみ、UI アクションを実行できるように3 秒を個別に開始したいと考えています。(これは、接続が遅い場合や 3G のモバイル デバイスなどでのみ発生すると予想されます。)
promise が与えられた場合、ブロックまたは待機せずに、それが完了したかどうかを確認できますか?
javascript - コレクションをマッピング/連結するための純粋な Promise ベースのアプローチはありますか?
async と Q 全般
私は Node.js 開発を学んでおり、非同期の「コールバック地獄」を管理するための戦略に頭を悩ませようとしています。私が調査した 2 つの主な戦略は、Caolan McMahon のasyncモジュールと、Kris Kowal の promise ベースのQモジュールです。
他の多くの人と同じように、私はまだどちらを使うべきかを理解するのに苦労しています。しかし、一般的に言えば、Promise と Q ベースのコードの方がやや直感的であることがわかったので、その方向に進んでいます。
一般的なコレクションのマッピング/連結
ただし、コレクションを管理するための async モジュールの関数の使用にはまだ行き詰まっています。Java と Python のバックグラウンドを持っているため、コレクションを扱うときのほとんどの場合、ロジックは次のようになります。
- 結果を格納する新しい空のコレクションを初期化します。
- 古いコレクションで for-each ループを実行し、各要素にロジックを適用して、その結果を新しい空のコレクションにプッシュします。
- for-each ループが終了したら、新しいコレクションの使用に進みます。
クライアント側の JavaScript では、jQuery のmap() 関数を使用することに慣れてきました...そのステップ 2 のロジックを渡し、ステップ 3 の結果を戻り値として取得します。基本的な考え方は同じような気がします。
async と Q を使用したコレクションのマッピング/連結
Node-side async モジュールには同様のmap関数とconcat関数がありますが、元のスコープ レベルで連結された結果を返すことはありません。結果を使用するには、代わりにコールバック地獄に降りる必要があります。例:
then()
私の他の関数は promise ベースになっているため、チェーン に簡単に含めることができるように、promise オブジェクトを返すこのコードを用意しています。
本当に両方必要ですか?
明確にするのに苦労している究極の質問は、上記のコード例でasyncとQ の両方が本当に必要かということです。一般的に、非同期モジュールの制御フローをQスタイルのプロミスチェーンに置き換える方法を学んでいます...しかし、プロミスベースのアプローチでコレクションのマッピングまたは連結を行う方法はまだ「クリック」されていません。または、なぜできないのか、またはなぜそれが良くないのかを知りたいです。
上記の例で使用しているように、async と Q が連携して動作することを意図している場合は、それで問題ありません。しかし、Q を単独できれいに使用できるのであれば、追加のライブラリ依存関係を必要としないことを好みます。
(とんでもなく明白な何かを見逃していたらすみません。非同期イベント駆動型モデルは非常に異なる世界であり、私の頭はまだ泳いでいます。 )