---
# System prepended metadata

title: "【第33週】ブルーベリー本輪読会\U0001FAD0\U0001FAD0<br />(2023-04-15)"
tags: [ブルーベリー本]

---

# 【第33週】ブルーベリー本輪読会🫐🫐<br />(2023-04-15)

[![hackmd-github-sync-badge](https://hackmd.io/Yt8iXfd1R36l6Cuc13C5Vg/badge)](https://hackmd.io/Yt8iXfd1R36l6Cuc13C5Vg)


###### tags: `ブルーベリー本`

- [開催概要](https://hackmd.io/1kCgi6_tSGukG0KZrqDLvA)
- [ブルーベリー本輪読会ノートまとめ](https://hackmd.io/Ih6bdReuR3eQpYkGaCx8pg)
- [プロを目指す人のためのTypeScript入門-サポートページ](https://gihyo.jp/book/2022/978-4-297-12747-3/support)（正誤表・サンプルコードのダウンロードページ）

---
## 2023-04-15（土）

### タイムスケジュール
- 雑談(5min) ~9:05
- 輪読(40min) ~9:45
- 前半の記入(5min) ~9:50
- 休憩(10min) ~10:00
- 輪読(45min) 前半での疑問の解消含む ~10:45
- まとめ(15min) ~ 11:00

### 進行係

- @Maeda8 

### ドライバー

- @haruguchi-yuma 

### 読んだところ

- p.349 「8.2.2 タイマーの例」 から

### 次回

- 8.2.4 同期処理と非同期の順序

### 自由に使う共有スペース

### わからなかったこと・疑問など

### 各自の疑問点や気づき、学んだこと

- @haruguchi
    - 勉強になった
    - イベントループどこにあるか問題:memo:
    - 同期的な処理に非同期的な処理が割り込むことはない、順番待ちして終わってから実行される

- @Maeda8 
	- コールバック関数で渡した処理は全て非同期で行われるわけではないので注意
		- 非同期処理を行う関数に渡すと非同期処理で行ってくれるだけ
	- 非同期処理は他の役割に移譲してる
		- ブラウザの主なスレッドはmainスレッド（renderスレッド）
		- setTimeoutはブラウザの他スレッドを使用してる
		- readFileはOSに移譲してる
	- 同期的な処理はコールスタック
	- 非同期的な処理は
		- 普通の非同期処理ならタスクキューに入る
		- Promiseならマイクロタスクキューに入る
			- コールスタックの処理が空になったら、マイクロタスクキューに入っている処理が実行される。マイクロタスクキューの処理が空になったら、タスクキューの処理が実行される
			- thenの中でdebuggerが使用できない理由はここら辺の処理の違いにあるのかもしれない。

- @AntiSatori 
    - イベントループ周りの仕様の複雑が分かった
    - Promiseを使った非同期処理はマイクロタスクキューに、普通の非同期処理はタスクキューにタスクが追加される。
    - agentの仕様はEcmaScriptが決めているが、agentに紐付けられたEvent loops周りのマイクロタスクキューやタスクキューの仕様はHTML Standardによって決められており、さらに実装依存なので実行環境によってEvent loopsの実際の挙動は変わってくる。

### 本日の振り返り(よかった点・次回に向けての改善点等)

- @haruguchi
    - 昼寝するか迷う
    - OSについての勉強とかもしたいけど、年末に「Linuxのしくみ」読んだら全然わからなくて撃沈した。
    - もうちょっと周辺知識整えてからだなと思った
        - Nand to Tetrisやったら良さそう

- @Maeda8 
	- 非同期処理輪読会だった
	- thenの中でdebugger使用できない疑問からたくさんのことを学ぶことができた

- @AntiSatori
    - 非同期処理の仕様難しすぎる
    - CSとか低レイヤーの知識が必要そう
