0

「requestingUserIds」は、異なる ID を持つ配列です。各 ID は、テーブル 'users' 内のユーザー名に属します。そのため、配列「requestingUserIds」の各 ID について、対応するユーザー名を配列「requestingUserUsernames」にループし、最後に完全な配列 (requestingUserUsernames) をコンソールに記録します。しかし、then 関数の外で実行すると、空の配列のみが出力されます。おそらく、最初に開始した配列です。

コンソールの then 関数内で配列 'requestingUserUsernames' をログに記録すると、ループ パスごとに配列が出力されますが、最終的な配列のみを出力したいと考えています。

requestingUserIds.forEach(userId => {
    db('users')
        .select('username')
        .where({id: userId})
        .then(rows => {
            requestingUserUsernames.push(rows[0].username);
         })
         .catch(error => console.log(error));
});
console.log(requestingUserUsernames);````
4

2 に答える 2