triviaCtrl.answer = function(req, res) {
//console.log(req.query.name);
var data = {};
var pointdata = {};
var datas = {
"Status": 0,
"Message": ""
};
return new Promise((resolve, reject) => {
var newAnswer = function(cb) {
data.questionId = req.query.questionId;
data.userId = req.query.userId;
data.correctAnswer = req.query.correctAnswer;
data.userAnswer = req.query.userAnswer;
data.type = req.query.type;
data.point = req.query.point;
Answer.create(data, cb);
}
var checkuserpoint = function(cb) {
Point.findOne({
userId: req.query.userId
}, function(err, result, cb) {
if (result) {
result.availablePoint = Number(result.availablePoint) + Number(req.query.point);
result.totalWinPoint = Number(result.totalWinPoint) + Number(req.query.point);
result.save(cb);
} else {
pointdata.userId = req.query.userId;
pointdata.totalWinPoint = req.query.point;
pointdata.redeemPoint = 0;
pointdata.availablePoint = req.query.point;
Point.create(pointdata, cb);
}
});
}
async.waterfall([newAnswer, checkuserpoint], function(err, result) {
if (err) {
//reject(err);
datas["Status"] = 0;
datas["Message"] = err;
res.json(datas);
} else {
datas["Status"] = 1;
datas["Message"] = result;
res.json(datas);
}
});
});
}
そこから「newAnswer、checkuserpoint」という関数が削除されていると動作していますが、両方を同時に使用している場合は応答がありません。しかし、以前のfucntionのコールバック非同期コールバックが正しく呼び出されない
に渡さasync.waterfall
取る引数に適切
あなたが返す約束を「解決する」または「拒否」することはありません。 – Thomas