db.find работает нормально, но очень медленно. Итак, я пытаюсь использовать db.search с поисковым индексом, но он ограничивается 200 записями. Итак, затем я вызываю тот же поиск, чтобы просмотреть все закладки, используя вложенное обещание, которое выполняется из-за нехватки памяти. Что-то не так с кодом ниже?
let qOptions;
qOptions = {'include_docs': true, limit: 200}
qOptions.q = "name: 'BEN'";
let allDocuments = [];
this.getAllDocuments(qOptions, allDocuments, 'app', 'myIndex')
.catch(err => {
....
})
.then((result) => {
....
});
а затем повторяющееся обещание:
getAllDocuments(queryOpqOptionstions, allDocuments, designName, indexName) {
const promise = new Promise((resolve, reject) => {
dbConnection.search(designName, indexName, qOptions, (err, result) => {
if (!err) {
if (result.rows.length === 0) {
resolve(allDocuments)
} else {
qOptions.bookmark = result.bookmark;
result.rows.forEach((result) => {
allDocuments.push(result)
})
this.getAllDocuments(qOptions, allDocuments, designName, indexName).then((docs) => {
resolve(docs);
}).catch((error) => {
logger.error({err: error});
reject(error);
})
}
} else {
logger.error({err: err});
reject(err);
}
})
})
return promise;
}