4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JavaScript】関数とPromiseと、ときどきasync await

Last updated at Posted at 2020-09-22

#関数の種類、早見表

名前 ソースコード 補足
名前付き関数 function() 関数名 {}
匿名関数(関数式) const 関数名 = function() {}
高階関数 function(関数) {関数} 引数に関数をとる関数のこと。また、引数の関数をコールバック関数という。

##コールバック関数の課題

コールバック関数を使うと、ネストになりがち

new Promise(()=>{}).thenで、ネストを解消
でも、行数が増えがち

async (){ await }で、簡略化

#通信成功時と失敗時のコールバック関数

const 非同期関数 = function (成功時関数, 失敗時関数) {
  if (...) {
    成功時関数(成功res)
  } else {
    失敗時関数(失敗res)
  }
}

#Promise

new Promise (function (resolve, reject) {
  asynchronous(
    function(成功res) {
      resolve(成功res)
    },
    function(失敗res) {
      reject(失敗res)
    },
  )
})

axios

function getStatus () {
  return new Promise(function (resolve, reject) {
    axios.get("URL")
    .then(function(res) {
      resolve(res.status)
    }).catch(function(error) {
      reject(error.res.status)
    })
  })
}

#async await

async function () {
  try {
    const 成功res = await 非同期関数
    成功時処理
  } catch(失敗res) {
    失敗時処理
  }
}

axios

async function getStatus () {
  try {
    const res = await axios.get("URL")
    return res
  } catch(error) {
    return error
  }
}

上記のように、分かりやすくtryも書いたが、いらなくても良い。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?