コールバックスタイルの外部ライブラリなどの関数を redux-saga で使うには

です。本日の課題とその対処です。

課題

外部ライブラリの関数が、コールバックスタイルのため、redux-saga の自前実装部分との実装の統一感がない。たとえば、navigator.geolocation.getCurrentPosition で現在地を取得することを考えます。以下のようなコードをコンポーネントに書くのは微妙です。

対処

Promise でラップすることで、redux-saga の call が使えて、普通の API コール系と同様に書けるようになります。他とアプローチを揃えておくと、将来的な抽象化の可能性などもあがっていいですね。