問題タブ [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.
node.js - マングースとqの約束
私はここでmongoose/q promisesフレームワークのサンプルから作業していますが、主にQフレームワークのサンプルが要点のサンプルと一致していないため、findOneを使用しようとするとnfbindにいくつかの問題があるようです。
私のコード:
を呼び出すuser.findOne({username:'test'}).then(function(err, user) { ... }
と、ユーザーは常に未定義です。エクスポートを削除し、コールバックで非約束バージョンを使用すると、ユーザーを取得します。特別な魔法が欠けていますが、コードの実装、Q githubの例、およびマングースのデモを確認した後、実際には何も飛び出しません。findOne
Qで作品を作る方法について何かアイデアはありますか?
nfbind
また、モジュールではなくソースで関数を設定しようとしましたが、役に立ちませんでした。
javascript - Q.jsプログレスハンドラーが起動していないようです
私は現在、promiseにQ.jsを使用しています。これは、Q.jsが進行状況ハンドラーを実装しているためです。しかし、彼らが発砲しているようには見えません。私は何が間違っているのですか?かなり基本的なようですので、何かが足りないに違いありません。(以下の例はcoffeescriptで書かれています)
node.js - node.jsQpromisesライブラリ-適切な引数リストを使用してninvokeからコールバックする方法
戻すだけならarg1
、result
になりますarg1
。複数の引数を返すresult
と、は引数の配列になります。配列にバンドルされて単一の引数として返されるのではなく、各引数を個別の引数として関数に適用してQをコールバックする方法はありますか?任意の要素の配列をふるいにかけるのではなく、名前付き引数を使用できるようにしたいと思っていました。
事実上、私はこれを実行できるようにしたいと思います。
jquery - h1タグを固定および固定解除する簡単なjQuery関数はありますか?
scrolleramaとsuperscrolleramaを認識しています。
私はそれらの両方と数日間苦労しました。そして、ピン留めだけのためにそれらを機能させることはできません。アニメーションとタイプのサポートは必要ありません。サンプル ドキュメントを使用して、HTML コンテンツを一度に 1 ブロック要素ずつ削除しようとすると、改ページされます。scrollerama は、例全体が存在する場合にのみ機能するようです。またはもっと可能性が高い.... 私はそれを理解するほど頭が良くありません。
私がやりたいのは、タグを固定してから<h1></h1>
、特定のタグに到達したときに固定を解除することだけです。
この質問もここで見ました: CSS Trouble with Pinned Header Divですが、まったく機能していないようです。
コード例:
どこかのjquery関数の例へのリンクは非常に役立ちます。または、scrollerama を pin/upin 機能だけに落とす方法の簡単な説明が役立ちます。
追加:
sbeliv01 はこの質問を提案しました: jQuery を使用して現在の位置に最も近い要素を見つける方法
ただし、余白が調整されている場合 (HTML5 のリセット)、そのメソッドは失敗します。要素にマージン調整がまったくない場合にのみ機能します。スタイルのない div で H1 タグを単純にラップしようとすると、ページのスクロール時にひどいちらつきが発生します。
これは機能しませんが、必要に応じて使用できるように jsFiddle をセットアップしまし
た
。
javascript - node.js + Q deferred/promisesモジュールを使用して同期コールバックから同期ループを作成する
人気のあるJavaScriptモジュールQは、据え置き/約束/先物の概念を実装しています。主にnode.jsで使用されていると思いますが、ブラウザの使用もサポートしています。node.jsで使用しています。
シーケンシャルコールを実行するには、あるプロミスを次のプロミスにチェーンしますthen()
が、ループでは、この擬似コードと同じことを行うのが難しいと感じるよりも直感に反する可能性があります。
Qのドキュメントには、非常によく似た例が含まれています。
しかし、この例を私の問題に適応させるために多くの方法を試みても、私はまったく成功していません。
サンプルコードとは異なり、配列を反復処理していませんが、終了条件が満たされるまでループしたいと考えています。また、私はいつも同じ関数を呼び出します。私の関数は、前の結果を次の呼び出しのパラメーターとして受け取りません。各呼び出しは引数を取りませんが、戻り値によってループを続行するかどうかが決まります。
これらの一見些細な違いは、ある種の乗り越えられない精神的ブロックを引き起こしています。これで、多くの人が約束を理解するのに苦労している理由がわかります。
file-upload - バックボーンを使用してファイル アップロード メッセージを更新するには?
JavaScriptを使用して複数のファイルをアップロードしています。
ファイルをアップロードしたら、いくつかの処理機能を実行する必要があります。
必要な処理時間のため、プロセス全体の推定残り時間をユーザーに伝える UI が前面に必要です。
基本的に私は3つの機能を持っています:
- /upload - これはファイルをアップロードするためのエンドポイントです
- /generate/metadata - これは /upload の後にトリガーされる次のエンドポイントです
- /process - これは最後のエンドポイントです。/generate/metadata の後にトリガーする必要があります
これは、基本的に画面がどのように見えるかを期待する方法です。
残りのパーセンテージや残り時間などの情報が表示されます。
ただし、サーバーが情報を提供できるようにするか、javascript のみを使用してハッキング見積もりを行うかはわかりません。
また、次のようなユーザーメッセージを伝えるように画面を更新する必要があります
「現在アップロード中」
私が機能1にいる場合。
機能 2 の場合は「メタデータの生成」。
機能 3 の場合は「処理中 ...」。
機能 2 は、1 が正常に完了した後にのみ発生します。
機能 3 は、2 が正常に完了した後にのみ発生します。
私はすでに q.js promise を使用してこの一部を処理していますが、コードは恐ろしく乱雑になっています。
私は最近 Backbone に出くわしました。これにより、私が望んでいた単一ページのアプリの動作を処理する構造化された方法が可能になります。
エンドポイントの成功または失敗に対してサーバー側が json 応答を返すことに問題はありません。
Backbone.js を使用してこの関数を実装するにはどうすればよいか考えていました。
node.js - q フレームワークと Node.js のコールバック パターンを約束しますか?
十分に文書化されたq フレームワークであっても、Node.js で数日間プログラミングしていると、理解するのは非常に困難です。しかし、私はそれについて学ぶのが好きです!
read1
、read2
およびread3
同等ですか?Q.nfbind
関数の最後のパラメーターが次のスタイルのコールバックを受け入れるたびに使用できますfunction (err, value)
か?
node.js - node.js Q で例外を処理する
ノードを数か月使用しています。非同期コードでのエラー処理については、私が認識しているベスト プラクティスに従っています。これは、コールバック エラー引数を介してエラーを処理し、ほとんどの例外が発生してアプリをクラッシュさせることです。きれいに回復する方法。
私は現在、Qを使用する開発者と一緒にプロジェクトに取り組んでおり、彼は Q.nfbind を使用するラッパーで私のコールバック ベースの関数のいくつかを呼び出しています。ただし、これにより、エラー処理が頭を悩ませています。たとえば、エラーでコールバックできる関数があるとします。
QI を使用すると、qDoSomething を呼び出して、エラーを正常に処理できます。
ここで、ある夜遅くまで仕事をしていて、クエリの直前に doSomething() 関数内で次のようなコードをチェックインしたとします。
私のプレQの世界では、これは悪いことです。例外がスローされ、アプリがクラッシュし、永遠に再起動されます。ただし、アプリを再起動すると、少なくともこのコード パスが再びヒットするまで機能します。ただし、Q では、この例外がキャッチされ、fail ハンドラによって処理されるようになりました。このハンドラーは、接続プールについて何も知らないため、損傷を修復できません。現在、このコード パスがヒットするたびに、プールから接続がリークされ、最終的にアプリがブリックされます。このバグの影響は、ひどいものからひどいものになりました。
Q で、最初にスローされたエラーとコールバック エラーによって発生したエラーを区別する方法がわかりません。すべてを処理するか、何も処理しないかで行き詰まっているようです。ひどい状態から悪い状態に戻る方法を誰か提案できますか?
javascript - 再帰的な約束でメモリリークを止める
Q ライブラリPromise
を使用して JavaScript の再帰チェーンを作成するにはどうすればよいですか? 次のコードは、Chrome で完了できません。
asynchronous - 拒否時にq.js-promise 'errormessage'を変更する方法は?
私は約束のためにQ.jsを使用しています。
Q-promise が失敗したときに、エラー メッセージをすばやくフォーマット/変更できるかどうかを知りたいです。
不自然な例を考えてみましょう:
もちろん、私は次のことを行うことができますが、ちょっと面倒です:
とにかくこれをもっとエレガントにするには?