カメリアの記事

意味があることやないことを綴ります

そこにも要ったのか await

下のようなコードを書いていました。正常に答えが返ってきません。 w は console.log() で見ると一見中身のない配列。でも表示を展開すると中身が見えます。だけど join() すると無が生成されます。変な配列が生成されるのです。配列の問題だと思ってググるのですが思うような記述にヒットしません。 w1 は 0 のまま。どうしましょう。

async function fun1() {
  let w = []
  let w1 = 0
  for (let i in arr) {
    fun2().then(async r => {
      //時間の科かかる処理
    })
  }
  return [w, w1]
}

fun2 の前に await をつけたら解決しました。

async function fun1() {
  let w = []
  let w1 = 0
  for (let i in arr) {
    await fun2().then(async r => {
      //時間の科かかる処理
    })
  }
  return [w, w1]
}

どこにでもつく await です。 await は面白いです。下のような書き方もできます。

w.push(await fun())

なんでもありやな、と思ってしまいます。今回は以上です。