Day20 #100DaysOfCode
すっかりサボっていた #100DaysOfCode またちょくちょくやっていきます。
Day20
お盆の頃に、TypeScript + React + Reduxでの非同期処理は一体どうしたらいいのかということをひたすら検証してた時期がありました。
それから数週間、やっとそれっぽく動くサンプルができつつあります。ながかった。てか時間かけすぎ。
僕の行き着いた結論としては、typesafe-actions
というサポートライブラリ?を使うことで、なるべく低い労力で、型システムをちゃんと使ってReduxアプリがかけるのではないかと思いました。
非同期処理の部分もredux-observableを使うことでこんなにすっきりと。
const fetchPostsEpic: Epic = action$ => { return action$.pipe( filter(action => action.type === ActionTypes.FETCH_START), mergeMap(() => api.post.getAll()), map(posts => fetchPosts.success(posts)) ); }
RxJS(Reactive X)が敷居が高い感じなので敬遠しがちかなと思うのですが、少なくともPromiseを返す関数叩いて結果をもとにActionをDispatchするくらいの感じなら、決まった形で書けばいいので、そんなに苦しくないと思いました。(もちろん、RxJSを使えるようになった上でredux-observableを使うことで、できるようになることはたくさんあるので、やらなくていいというわけではないのですが…)
QiitaにHyperでEmojiを使う記事を書いた
それはそうと、Ubuntu18.04は最初から絵文字フォントが入っているのですね。素敵。
雑談
最近研究室で使っていたディスプレイが壊れたので新しいのを買ってもらいました。Full HDではありますが、27インチでとても快適。
回線速い、PCのスペックも良い、エアコン使い放題(寒い)これで家から近ければ本当に文句ないですねw