node.js - 如何在续集中获得超出承诺的结果?
问题描述
var mark = 0;
var rightAns=0;
var wrongAns = 0 ;
var notAttempt=0;
questionId = ['1', '2', '3','4', '5', '6','7', '8', '9']
answer = [ 'B', 'D', 'C','E', 'E', 'E', 'E', 'E', 'E']
for(let i = 0 ; i<questionId.length ; i++){
if(answer[i]==='E'){
notAttempt +=1;
}
else{
Questions.findOne({where:{id: questionId[i]}})
.then(question=>{
if(answer[i]===question.answer){
rightAns+=1;
}else{
wrongAns+=1;
}
})
}
};
解决方案
您可以使用异步/等待模式。
var mark = 0;
var rightAns = 0;
var wrongAns = 0;
var notAttempt = 0;
let questionId = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
let answer = ["B", "D", "C", "E", "E", "E", "E", "E", "E"];
for (let i = 0; i < questionId.length; i++) {
if (answer[i] === "E") {
notAttempt += 1;
} else {
let question = await Questions.findOne({ where: { id: questionId[i] } });
if (answer[i] === question.answer) {
rightAns += 1;
} else {
wrongAns += 1;
}
}
}
在您的控制器中(在问题的所有者评论之后):
exports.postAnswerEvaluate = async (req, res, next) => {
try {
const answer = req.body.answer; //will get answer = ["B", "D", "C", "E", "E", "E", "E", "E", "E"];
const questionId = req.body.questionId; //will get questionId = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];}
var mark = 0;
var rightAns = 0;
var wrongAns = 0;
var notAttempt = 0;
// let questionId = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
// let answer = ["B", "D", "C", "E", "E", "E", "E", "E", "E"];
for (let i = 0; i < questionId.length; i++) {
if (answer[i] === "E") {
notAttempt += 1;
} else {
let question = await Questions.findOne({
where: { id: questionId[i] }
});
if (answer[i] === question.answer) {
rightAns += 1;
} else {
wrongAns += 1;
}
}
}
} catch (exc) {
// handle exceptions here
}
};
推荐阅读
- ios - 解析服务器:使用代码 209“会话令牌已过期”处理错误。对于自动(匿名)用户
- r - 由于时区/夏令时更改,将时间序列中的空白填补了一个小时
- django - React.js 和 Django S3 上传困境 403/签名不匹配
- regex - 正则表达式检测特定单词
- elasticsearch - 插件无法在 ElasticSearch 中使用 FileBeat
- c++ - 使 OpenCV 调整大小与 Matlab/Octave imresize 相同
- android - 在android studio中启动错误
- oracle - Oracle 存储过程将返回表中的所有数据
- python - 解析使用 Flask-Caching 存储的字节
- python-3.x - 具有多个 groupby 的特定值的唯一列值的数值聚合