以前の質問Illegal break statement (Node.js)からの提案に基づいて、実装async.whilst()
しましたが、複数回反復していません。
ID の末尾の数字をインクリメントし、Mongo にクエリを実行してその ID が存在するかどうかを確認することで、一意の ID を見つけようとしています。存在しない場合は、一意の ID が見つかります。一意が見つかるまでではなく、1 回だけループします。なにが問題ですか?
コード:
var uniqueNumber = 1;
var newUnique;
async.whilst(
function () {
var uniqueNum_string = uniqueNumber.toString();
newUnique = data.id + uniqueNum_string;
db.collection('landmarks').findOne({'id':newUnique}, function(err, data){
if (data){
console.log('entry found!');
return;
}
else {
console.log('entry not found!');
}
});
},
function (callback) {
uniqueNumber++;
},
function (err) {
saveLandmark(newUnique);
}
);