2017-09-28 7 views
1

私はユーザーがエントリを更新するたびに最新のエントリのリストを最新に保つために実行される関数を持っています。私が実行している問題は、インデックス上で.clearCache()を実行すると、実際の検索機能が実行される前に実行していても、最新の更新を取得するために2回のリロードが必要になることです。あたかもそれが後ろ向きになっているかのように行動している。私はこれを引き起こしているものは考えているが、ここで私の検索機能である:あなたがtaskIdを持つオブジェクトになりますindex.saveObject()約束/コールバックの結果のようなものを実行したときにAlgoliaインデックスで何かを変更するJavascript AlgoliaJS .clearCache()空の検索結果には、常に "検索の背後にある"

search() { 

    this.results = []; 
    // Clear the algolia cache 
    this.auditionsIndex.clearCache(); 
    this.auditionsIndex.search('', options).then(result => { 
     if(result.hits && result.hits.length > 0) { 
     this.results = result.hits; 
     } 

     // Clear the cache one more time 
     this.auditionsIndex.clearCache(); 
    }); 
    } 

答えて

4

は、非同期的に起こります。その場合、そのタスクのためにindex.waitTaskを送信し、フロントエンドにいくつかのイベントを送信して、キャッシュをクリアして検索するように通知することができます。

+0

うーん、私は、フロントエンドでこれを使用することができますどのような方法があるhttps://www.algolia.com/doc/api-reference/api-methods/wait-task/#methodsを参照してください?私は、基本的にFirebaseツリーのノードをリッスンするノードサーバーを持っています。変更を行ったら、自動的にAlgoliaからオブジェクトを追加/更新/削除します。すべてがリアルタイムであるため、「待機」してフロントエンドに送信する実際の方法はありません。/ –

関連する問題