Belgenin belgdb'ini sorgulayan ve sonuçları arayan kişiye veren aşağıdaki yönteme sahibim. Ertelenme ertelenmesi beklendiği gibi çalışmaz
fetch: function(query) {
var fetchDeferred = q.defer();
client.queryDocuments(collectionLink, query).toArray(function(err, docs) {
console.log("Fetch return values - " + JSON.stringify(err) + " - " + JSON.stringify(docs));
if (err) {
fetchDeferred.reject(err);
} else {
fetchDeferred.resolve(docs);
}
});
return fetchDeferred.promise;
}
Ben getirme yöntemini çağırın
, ben Yani documentDb verileri döndürür biliyoruz aşağıdaki sonucuFetch return values - undefined - []
görüyoruz. Şimdi koşullara dayanarak, fetchDeferred.resolve sözünü çözmelidir. Ben rotayı çağırdığınızda
{data:[]}
aşağıdaki Ama başarı işlev değil gibi ben sonucun elde edilmelidir
exports.get = function(request, response) {
var userId = '100';
var querySpec = {
query: 'SELECT * FROM root r WHERE r.id = \'user_\' + @id',
parameters: [{
name: '@id',
value: userId
}]
};
docdb.fetch(querySpec).then(function(result){
response.send(statusCodes.OK, {data: result})
}, function(error){
response.send(statusCodes.OK, {data: error});
});
};
şöyle
Bu fonksiyon bir get rota işleyicisi çağrılır çağrılıyor :(Bunun neden olabileceği hakkında bir fikrin var mı?
Dolayısıyla, yalnızca emin olmak için: getiri işleyicisinden işlevi çağırdığınızda, konsol günlüğünü görürsünüz, ancak başarı işlevi çağrılmıyor mu? Hata fonksiyonu çağrılıyor mu? – fikkatra
'toArray' yöntemi nedir? Kaç kere deniyor? –
queryDocuments, async işlevi gibi görünüyor. err ... – softwarenewbie7331