Итак, у меня есть следующий код, который находится в обработчике Hapi.JS и пытается вызвать couchbase sdk.
handler: async (request, h) => {
var SpatialQuery = Couchbase.SpatialQuery;
var sw = JSON.parse(request.payload.sw);
var ne = JSON.parse(request.payload.ne);
var query = SpatialQuery.from('dev_spatialtest', 'spacetest').limit(100);
return await myBucketQuery(query);
}
Вызывает эту функцию
async function myBucketQuery(query){
return bucket.query(query, async function(err, results){
console.log("in results = " + JSON.stringify(results));
return results;
});
};
console.log в myBucketQuery возвращает правильный результат, но делает это после того, как хапи уже вернулось (или, возможно, нет ???). Результат при возвращении почтальона как
{
"_events": {},
"_eventsCount": 2
}
Может кто-нибудь подсказать мне, что я здесь делаю не так?
Исправлено с использованием следующего
async function myBucketQuery(query){
return new Promise(resolve => {
var resolution = bucket.query(query, async function(err,results){
console.log("in results = " + JSON.stringify(results));
resolve(results);
});
return resolution;
});
};