Skip to content

Instantly share code, notes, and snippets.

@mugyu
Created February 11, 2019 06:22
Show Gist options
  • Save mugyu/35c635c09c3136fb5bba5d11be0c21a0 to your computer and use it in GitHub Desktop.
Save mugyu/35c635c09c3136fb5bba5d11be0c21a0 to your computer and use it in GitHub Desktop.
プロミスで最低待ち時間を設定する

プロミスで最低待ち時間を設定する

下記のようにすると、 fetch()関数に掛かる時間に係わらず 最低限、1000ミリ秒は必ず待つ。

演出上の都合などで待ち時間をある程度揃えたい場合に使える。

// Promise.all で並列で処理するプロミスを全て待つので
// 片方に setTimeout で時間を制御する
Promise.all([
  new Promise(function(resolve, reject) {
    setTimeout(resolve, 1000); // <= 最低1000ミリ秒は待つ
  }),
 fetch() // <= 本命の処理。かかる時間が不定
]).then(value => {
  console.log(value[1]); // <= 2つのプロミスの結果が帰ってくる。
                         //    ここで必要なのは2つ目なので
			 //    value[1] で値を取得
});

Promise.all()は、2つ以上のAPIの結果をマージする場面とかでも使えそう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment