プロミスを使用してデータベーステーブルを歩き回り、各ステップからデータを同期的に取得したいと考えています。私は私のコードは次のようになるはずだと思う:Promiseでテーブルウォーク/再帰
function get_next_id(the_id) {
return new Promise(function(resolve) {
connection.query(get_parent_query, [ the_id ], function (e, r, f) {
resolve(r[0].from_visit);
});
});
}
var page_id = 60239;
while (page_id > 0) {
get_next_id(page_id).then((i) => page_id = i);
}
このコードの問題は、その後すぐに()が完了するのを待たずにループ反復します。
this answerでは、Promise.race()を使用するか、約束を放棄してasyncを推奨します。
答えは* * 2015年にあったことを。それ以来変化してきた... –