問題タブ [combinelatest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
687 参照

swift - Swift Combine の CombineLatest は、そのパブリッシャーの 1 つに対する更新に応答して起動しません

2 つのパブリッシャーを組み合わせて、マップ ビューの中心座標を決定しています。パブリッシャーは次の 2 つです。

  1. によって決定されたユーザの初期位置( が位置更新の送信を開始しCLLocationManagerた後に報告される最初の位置)。CLLocationManager
  2. 「現在地の中心地図」ボタンがタップされた場合のユーザーの現在地。

コード内:

発行者$initialUserCoordinatecenterButtonTappedPublisherの両方が更新を発行しています - 私はこれを確認しました。ただし、結合されたパブリッシャーcoordinatePublisherは、「現在の場所の中心地図」ボタンがタップされた場合にのみ起動します。initialUserCoordinateプロパティが最初に設定されたときに発生することはありません。

This question.receive(on: RunLoop.main)の後に追加することを提案してPublishers.CombineLatest($initialUserCoordinate, centerButtonTappedPublisher)いますが、これは私にとってはうまくいきません。

私は何を間違っていますか?