今まで何も考えず.then使ってたけどよくなかったらしい
知見
- fetchでthenな感じのやつはasync awaitな感じで書くといいらしい
const getFirstUserData = () => { return fetch('/users.json') // ユーザ一覧のJSONを取得 .then(response => response.json()) // パース .then(users => users[0]) // 最初のユーザを取り出す .then(user => fetch(`/users/${user.name}`)) // 指定ユーザのJSONを取得 .then(userResponse => response.json()) // パース } getFirstUserData();
async function getFirstUserData() { const response = await fetch('/users.json') // ユーザ一覧のJSONを取得 const users = await response.json() // パース const user = users[0] // 最初のユーザを取り出す const userResponse = await fetch(`/users/${user.name}`); // 指定ユーザのJSONを取得 const userData = await user.json(); // パース return userData } getFirstUserData();
みたいな書き換えができる
書き換えのメリット
- 可読性の向上
- jsonの例えばusers[0]をみて処理を変える時とか、thenだと面倒くさいコードになりがち
別件
- ===で厳密比較を使っていくとよさそう
1 == '1' // => true 1 === '1' //=> false