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も有ります。
使ったことないですが(^^;