LoginSignup
18
18

More than 5 years have passed since last update.

Promise を使った同期処理

Last updated at Posted at 2014-10-17

大量のリソースを負荷をかけずにXHRさせたり、ストレージに大量のデータを保存したりを、同期処理で実現したいケースがあります。Promise を使った例が見つけられなかったので書いてみました。

XHRしたりデータを保存する部分は冗長なので、1秒おきにコンソールに数字を表示するものを例とします。

var count = 0;

var wait = function() {
  return new Promise(function(resolve, reject) {
    // 1秒待ちを入れてコンソールに数字を表示する
    setTimeout(function() {
      console.log(count++);
      resolve();
    }, 1000);
  });
};

// 最後の Promise を保持
var last_promise = wait();
for (var i = 0; i < 10; i++) {
  // 動的に .then() チェーンで繋いでいく
  last_promise = last_promise.then(wait);
}

こんだけ。
動くサンプル

似たようなことをもっと簡単にやる方法があれば教えて下さい。

18
18
1

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
18
18