Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ド文系人事総務 AsyncPipeのソースコードを読む
Search
zako1560
September 08, 2022
Programming
0
47
ド文系人事総務 AsyncPipeのソースコードを読む
ラクス フロントエンドLT会 - vol.8 で発表させていただいたスライドです。
https://rakus.connpass.com/event/255095/
zako1560
September 08, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
26
8.2k
VS Code をプロダクトにどう取り込むか
onomax
1
350
Semantic search with Django and pgvector
pauloxnet
0
240
Ruby Function Composition
bkuhlmann
1
330
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
190
Snowflakeで眠ったデータを起こそう!
estie
0
110
Hanami and htmx
bkuhlmann
0
200
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
使ってみよう Azure AI Document Intelligence
kosmosebi
2
280
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
350
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
230
Featured
See All Featured
In The Pink: A Labor of Love
frogandcode
138
21k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
GitHub's CSS Performance
jonrohan
1025
450k
Building an army of robots
kneath
300
41k
Being A Developer After 40
akosma
57
580k
What's in a price? How to price your products and services
michaelherold
237
11k
How to name files
jennybc
65
93k
Why Our Code Smells
bkeepers
PRO
331
56k
Ruby is Unlike a Banana
tanoku
96
10k
Designing Experiences People Love
moore
136
23k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Transcript
ド文系人事総務 AsyncPipeのソースコードを読む 2022/09/08 フロントエンドLT会 - vol.8
自己紹介 ざこ @zako1560 • 苗字の「こざ◯」から「ざこ」 • 京都の機械メーカーで人事総務 • 水漏れしてるトイレの部品交換したり、 新卒面接したり、人事制度改定したり... •
Angularで社内人事評価アプリ作ってます • 20:30に寝て4:00に起きます 2
本日のテーマ Async Pipe 3
Async Pipe ObservableやPromiseといった非同期データを テンプレートに直接バインドできる機能 4
5
6
コンポーネントが破棄された際に 自動で購読解除してくれる 購読解除(unsbscribe)が必要 →解除し忘れると メモリリーク・バグの原因に 7
🎉🎉 便利やな〜!! 🥳🥳 (長野県出身) 8
🤯 9
10 親コンポーネント 子コンポーネント
11 親コンポーネント 子コンポーネント
なんのnull? 12
AsyncPipe初期値null問題 13
14
15
・・・ 16
・・・ AsyncPipeのtransform()が初めて呼び出された場合 • Observavle(obj)があれば ◦ _subsuribe()でObservavleを購読する ◦ 購読したObservableに値が流れてきたら、 _latestValueを更新する ▪
markForCheck()を呼び出す →再度transform()が呼び出される 17
・・・ 購読したObservableに値が流れてきたら、 _latestValueを更新する・・・ Observableにまだ値が流れてきていなかったら??? 18
・・・ 購読したObservableに値が流れてきたら、 _latestValueを更新する・・・ Observableにまだ値が流れてきていなかったら??? _latestValueの初期値が返る!! 19
・・・ 20
・・・ 21 初期値null問題
どうすれば・・・🥺 22
null安全なディレクティブを通す *ngIf *ngFor 23
*ngIfの内部は、name$ | asyncが返す値 がfalsyなら無視される 24
25 わかりやすい記事の数々・・・ ありがとうございます
・・・ console.log() console.log() 26 おまけ
・・・ console.log() console.log() obj = new BehaviorSubject<>(‘hogehoge’).asObservable() obj = of(‘hogehoge’)
といった購読と同時に値が流れる Observableの場合、 nullは返されない 27 おまけ
ご静聴ありがとうございました!! 28