タグ付けされた質問 「jquery-deferred」

10
jQueryの据え置きと約束-.then()と.done()
私はjQueryの遅延とプロミスについて読んでいますが、コールバックの成功に.then()&.done()を使用することの違いがわかりません。私が知っているエリックHyndsがいることを言及.done()して.success()同じ機能にマッピングするが、私はそう推測している.then()すべてのコールバックがすべて成功した操作の完了時に呼び出されるよう。 誰かが正しい使い方を教えてくれますか?

9
Deferredの配列を$ .when()に渡します
これが起こっていることの不自然な例です:http : //jsfiddle.net/adamjford/YNGcm/20/ HTML: <a href="#">Click me!</a> <div></div> JavaScript: function getSomeDeferredStuff() { var deferreds = []; var i = 1; for (i = 1; i <= 10; i++) { var count = i; deferreds.push( $.post('/echo/html/', { html: "<p>Task #" + count + " complete.", delay: count }).success(function(data) { $("div").append(data); })); …

11
jQuery deferredはどのように使用できますか?
jQuery 1.5は、新しいDeferredオブジェクトと付属のメソッド.whenを提供.Deferredし._Deferredます。 .Deferred以前に使用したことがない人のために、そのソースに注釈を付けました。 これらの新しいメソッドの可能な使用法は何ですか?それらをパターンにどのように合わせるのですか? 私はすでにAPIとソースを読みましたので、それが何をするか知っています。私の質問は、これらの新機能を日常のコードでどのように使用できるかです。 AJAXリクエストを順番に呼び出すバッファクラスの簡単な例があります。(前の1つが終了した後、次の1つの開始)。 /* Class: Buffer * methods: append * * Constructor: takes a function which will be the task handler to be called * * .append appends a task to the buffer. Buffer will only call a task when the * previous task has finished */ …

4
jQuery Deferredの配列をどのように操作しますか?
データを特定の順序でロードする必要があるアプリケーションがあります。ルートURL、次にスキーマ、最後にさまざまなデータオブジェクトのスキーマとURLを使用してアプリケーションを初期化します。ユーザーがアプリケーションをナビゲートすると、データオブジェクトがロードされ、スキーマに対して検証され、表示されます。ユーザーがデータをCRUDすると、スキーマは初回パスの検証を提供します。 初期化に問題があります。Ajax呼び出しを使用してルートオブジェクト$ .when()をフェッチし、スキーマオブジェクトごとに1つずつ、promiseの配列を作成します。うまくいきます。コンソールにフェッチが表示されます。 次に、すべてのスキーマのフェッチが表示されるので、各$ .ajax()呼び出しが機能します。fetchschemas()は確かにpromiseの配列を返します。 ただし、その最後のwhen()句は起動せず、「DONE」という単語はコンソールに表示されません。jquery-1.5のソースコードは、$。when.apply()に渡すオブジェクトとして「null」が受け入れられることを示唆しているようです。渡された。 これはFutures.jsを使用して機能しました。このようにならない場合、jQuery Deferredの配列はどのように管理する必要がありますか? var fetch_schemas, fetch_root; fetch_schemas = function(schema_urls) { var fetch_one = function(url) { return $.ajax({ url: url, data: {}, contentType: "application/json; charset=utf-8", dataType: "json" }); }; return $.map(schema_urls, fetch_one); }; fetch_root = function() { return $.ajax({ url: BASE_URL, data: {}, contentType: "application/json; charset=utf-8", …



3
jQuery deferredの「then」メソッドをいつ使用する必要がありますか。「pipe」メソッドをいつ使用する必要がありますか?
jQueryにDeferredは、関数の非同期チェーンを実装するために使用できる2つの関数があります。 then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks Deferredが解決されたときに呼び出される関数または関数の配列。 failCallbacks Deferredが拒否されたときに呼び出される関数または関数の配列。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilter Deferredが解決されたときに呼び出されるオプションの関数。 failFilter Deferredが拒否されたときに呼び出されるオプションの関数。 私then()はもう少し長いことを知っているpipe()ので、後者はいくつかの追加の利点を追加する必要がありますが、その違いは正確にはわかりません。名前は異なりますが、a Deferredを返すことPromiseとa を返すことの違いはわずかに見えますが、どちらもほとんど同じコールバックパラメータを取ります。 私は何度も公式ドキュメントを読みましたが、常に「密度が高すぎて」本当に頭を抱えこむことができず、検索で1つの機能または他の機能に関する多くの議論が見つかりましたが、違いを明確にするものは何も見つかりませんでした。それぞれの長所と短所。 それで、いつ使用thenするのが良いのpipeですか、いつ使用するのが良いのですか? 添加 Felixの優れた答えは、これら2つの機能の違いを明確にするのに役立ちました。しかし、の機能がの機能よりthen()も望ましい場合があるのでしょうかpipe()。 pipe()がより強力であることは明らかでthen()、前者は後者ができることは何でもできるようです。使用する理由の1つはthen()、その名前が、同じデータを処理する一連の関数の終了としての役割を反映していることです。 しかし、新しいものを返すために実行できないthen()元のものを返す必要があるユースケースはありますか?Deferredpipe()Promise

2
延期対約束
jQueryバージョン以外のDeferredとPromiseの違いは何ですか? 必要に応じて何を使用すればよいですか?だけ呼びたいですfooExecute()。たとえば、fooStart()とだけでfooEnd()htmldivステータスを切り替えることができます。 //I'm using jQuery v2.0.0 function fooStart() { /* Start Notification */ } function fooEnd() { /* End Notification */ } function fooExecute() { /* Execute the scripts */ } $('#button1').on('click', function() { var deferred1 = $.Deferred(); var promise1 = $.Promise(); deferred1.??? promise1.??? });

2
コンポーネントのReactjs非同期レンダリング
ajaxリクエストが完了した後にコンポーネントをレンダリングしたいと思います。 以下に私のコードを見ることができます var CategoriesSetup = React.createClass({ render: function(){ var rows = []; $.get('http://foobar.io/api/v1/listings/categories/').done(function (data) { $.each(data, function(index, element){ rows.push(<OptionRow obj={element} />); }); return (<Input type='select'>{rows}</Input>) }) } }); しかし、ajaxリクエストのdoneメソッド内でrenderを返すため、以下のエラーが発生します。 Uncaught Error: Invariant Violation: CategoriesSetup.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.