こんにちは、私は初心者ですが、明示的なルータからpromise.allを使って複数の非同期関数を呼び出そうとしていますが、未定義を返します。Express js promise.allは未定義です
user.jsの//ルート
var findAllUsersDetails = function(router){
router.post('/api/v1/users/getAllUserFormDetails',
function (req, res) {
Promise.all([
userModel.getAllUsers(req),
userModel.getAllUsers(req),
])
.then((data) => console.log(data))
.catch((err) => console.log(err))
});
}
user.jsの//モデル
var userModel = {
getAllUsers : function(req){
var string = "";
var id_company = req['user'].id_company;
var dbConnection = dbConnectionCreator();
var getAllUsers = getAllUsersSqlString(string, id_company);
console.log("ANGEL: finding all employees");
dbConnection.query(getAllUsers, function(error, results, fields){
return new Promise((resolve, reject) => {
console.log(results);
if (error) {
dbConnection.destroy();
console.log("error: ", error);
return reject (err);
} else if (results.length === 0) {
resolve("User not found.");
} else {
resolve(results);
//return (callback({employeeData: results}));
}
})
});
},
}
module.exports = userModel;
初心者の間違いで、コールバックから何かを返すと、コールバックが作成されていないコールバックの呼び出し元に戻ります。 'getAllUsers'を注意深く読んでください。実際、それは何も返さない。 –