これが私が見逃している単純なものであることを願っていますが、私が望むようにデータを返すことができないようです. 関数ログインはユーザー名を受け取り、認証用のパスワードと ID をデータベースからのユーザーの XY 座標と共に返します。
XY 座標は、ログイン クエリから返される ID に依存します。ID はすべてPromise
、認証のためにメイン関数に返されます。ただし、すべてのデータを 1 つのうまく編まれたオブジェクトに戻すことはできません。
function login(user) {
var query = 'SELECT password,id FROM player WHERE name='+mysql.escape(user);
return db.select(query).then(function(rows) {
console.log(rows);
return Promise.all([
getX(rows[0].id),
getY(rows[0].id)
]);
});
}
これはログに記録します:
[ { password: 'nopasswordforu', //<-- not a real password
id: 9 } ]
[ [ { x: 32 } ], [ { y: 36 } ] ]
パスワードは、戻り値ではなく、コンソール ステートメントからログに記録されます。返されるのはxy
座標だけです。関数が返すのと同じ Promise でクエリ結果を返すにはどうすればよいですか?