PromiseでDBを非同期でNodeな処理をしましょう

更新処理なんかをするとき、予め複数のデータテーブルを読み込んでおくなんてとき有ります。

特に順番に処理をする必要もないんで、全部読み込んだらそれから処理をすればOK!

そんなとき、Promise.allを利用しています。

具体的にはどうやってるの?

必要な処理をPromiseでくくって用意します。

let fnc01 = new Promise( function( resolve, reject ) {
  db.any( “SELECT 〜” )
  .then( function( rows ) {
  })
  .cathc( function( err ) {
  });
})
.catch( function( err ) {
});

let fnc02 = new Promise( function( resolve, reject ) {
  db.any( “SELECT 〜” )
  .then( function( rows ) {
  })
  .cathc( function( err ) {
  });
})
.catch( function( err ) {
});

Promise.all([ fnc01, fnc02 ])
.then( function() {
})
.catch( function( err ) {
});

全部の処理が正常に終了すると、次に進んでくれます。

終わりに。。。

ちょっと違うのですが、Promise.raceも有ります。

使ったことないですが(^^;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です