anObservable
は動的なオブジェクトであり、時間の経過とともに変化することを理解しています。ただし、私は関数を作成しようとしています。この関数は、そのオブザーバブルのスナップショットを1つだけ返します。
を使用AngularFire2
して返す次の関数がありますObservable
。
import { Observable } from 'rxjs/Observable';
findMessages(chatItem: any): Observable<any[]> {
return this.af.database.list('/message/', {
query: {
orderByChild: 'negativtimestamp'
}
}).map(items => {
const filtered = items.filter(
item => ((item.memberId1 === chatItem.memberId1 && item.memberId2 === chatItem.memberId2)
|| (item.memberId1 === chatItem.memberId2 && item.memberId2 === chatItem.memberId1))
);
return filtered;
});
}
これは完全に機能し、このリストを表示すると、アイテムが追加または削除されると動的に更新されます。
質問
この関数を呼び出してObservable
、アイテムの静的配列に変換するにはどうすればよいですか?
私はここを見て、彼らの例を私の状況に後付けしようとしましたが、そうすることができないようです。
助けていただければ幸いです。
Observable
関数を呼び出すときは、サブスクライブする必要があります。実際には、非同期であるため、Promise
またはObservable
非同期であるため、何も返すことはできません。したがって、チェーンを取得して、そこで変数を使用する必要があります。
findMessages(char).subscribe((data) => {
// it is the success function. Data is the one returned from the map
// yourVariable = data;
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加