Как я могу обработать ошибку в этой nodejs функции обещания Я новичок в обещании. Я попробовал все, но я не могу справиться с этим. Я хочу, чтобы если генерировать функцию fini sh res.send хорошо, если есть ошибка Res отправить ошибку. Я попытался наконец, поймать, попробовать поймать блоки ничего не работает.
мой код:
exports.gameCreatePost = function (req, res) {
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array
}
var code;
generate(8, 10).then(function (ok) {
console.log(ok)
code = ok;
var chance = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
chance = shuffleArray(chance);
Game.create({
username: req.body.username,
code: code,
gameChance: chance,
opened: 0,
log: [],
total: 0,
status: 0,
creator: req.user.username
}, function (err, created) {
if (err) {
console.log(err)
} else {
res.send('ok')
}
});
},function(err) {
res.send('error')
});
}
function generate(count, retry) {
return new Promise(function (resolve, reject) {
var _sym = 'A';
var str = '';
for (var i = 0; i < count; i++) {
str += _sym[parseInt(Math.random() * (_sym.length))];
}
const control = Game.findOne({
code: str
})
if (retry <= 0) {
reject('Code Not Generated')
} else if (control) {
console.log('inside')
generate(count, retry - 1)
} else {
resolve(str);
}
}).catch(function (err) {
console.log(err);
});
}