はじめに
皆さん。こんにちは! DreamHanksのエルムです。
今回はリアルタイムについて説明していきます。
前回の記事は[第16回] コンフリクトの解決です。
リアルタイムにデータを観察
あなたのモデルの変更を購読することができます。これは、GraphQLサブスクリプションの結果や、クラウドと同期している場合はバックのAppSync APIに対して実行されるクエリやミューテーションの結果など、基礎となるストレージエンジンへのデータの更新に動的に反応します。
1 2 3 |
const subscription = DataStore.observe(Post).subscribe(msg => { console.log(msg.model, msg.opType, msg.element); }); |
一つのアイテムの変化をIDで観察します:
1 2 3 4 5 |
const id = '69ddcb63-7e4a-4325-b84d-8592e6dac07b'; const subscription = DataStore.observe(Post, id).subscribe(msg => { console.log(msg.model, msg.opType, msg.element); }); |
サブスクリプションを閉じます:
1 2 3 4 5 6 |
const subscription = DataStore.observe(Post, id).subscribe(msg => { console.log(msg.model, msg.opType, msg.element); }); // 購読を終了するためにunsubscribeを呼び出します subscription.unsubscribe(); |
observe関数は非同期ですが、他のDataStore APIメソッドのようにawaitを使用してはいけません。これは長時間実行されるタスクであるため、ノンブロッキングにする必要があります(つまり、DataStore.observe()呼び出しの後のコードは、その実行が終了するのを待つべきではありません)。
DataStore.clear()は、アクティブなサブスクリプションを削除します。クリアした後にDataStore.observe()を再度呼び出して、手動で再設定する必要があります。
終わりに
今回の記事は以上になります。
次回は [第18回]データストアのイベントを学びましょう。
ご覧いただきありがとうございます。
コメント