Что я хочу сделать:Node.js обратного вызова в то время как
var found = false;
while (!found){
var result = db.getNextRecord();
if (result == search_term){
return result;
}
}
Проблема заключается в том, getNextRecord асинхронный
var nothing_returned = db.getNextRecord(function(err, result){
// I have the result in this callback, but not before
});
Учитывая поведение getNextRecord (Cb), как я могу переписать над фрагментом кода, чтобы получить тот же результат?
FYI это идеальный случай использования для генераторов, где вы могли бы сделать "выход db.getNextRecord();" и цикл остановится до тех пор, пока асинхронный вызов не будет разрешен. Генераторы приходят в javascript в ECMA 7 (вы можете использовать их сейчас с транспилером, как babel) и уже поддерживаются в node.js –