外部APIからデータのバンドルをフェッチしようとしています。httprequestを介して私はを取得しObservable<T[]>
ます。
リクエストが完了するのを待っている間に、将来それらのTを取得する「プレースホルダー」を作成することを計画しているので、それらのプレースホルダーのそれぞれにを割り当てることを考えましたObservable<T>
。
内部にTを割り当てると
request.pipe(map(array => foreach(item of array) {createPlaceholder(item)})
プレースホルダーはデータのフェッチ後に作成されるため、「プレースホルダー」の概念は無意味になります。そこで、Observable<T[]>
をaに変換し、Observable<T>[]
各オブザーバブルを新しい配列に割り当てることを考えましたが、ネットで検索すると、その逆(Observable<T>[]
to Observable<T[]>
)しか見つかりませんでした。
変換する方法があるObservable<T[]>
にはObservable<T>[]
?
一般的な配列の長さに対してこれを行うことはできません。
T []の長さはプログラムの開始時には不明であり、泡が変わることさえあります。したがって、これに配列を使用することはできません。
配列の長さがわかっている場合(typescriptでタプルタイプとしてモデル化できます)にのみ、次のようなオブザーバブルを作成できます。
const serverResponse$: Observable<[T, T, T]> = ...;
const myObservables$: [Observable<T>, Observable<T>, Observable<T>] = [
serverResponse$.pipe(map(r => r[0])),
serverResponse$.pipe(map(r => r[1])),
serverResponse$.pipe(map(r => r[2]))
];
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加