Как извлечь все капли приложения в pouchdb (синхронная/асинхронная проблема?)Javascript

Форум по Javascript
Ответить
Anonymous
 Как извлечь все капли приложения в pouchdb (синхронная/асинхронная проблема?)

Сообщение Anonymous »

ПРИМЕЧАНИЕ. Моя проблема, по -видимому, больше связана с синхронным и асинхронным JavaScript, чем с pouchdb.
У меня есть база данных Pouchdb, содержащие документы, которые каждый имеет одно прикрепление. blob_content = new Blob ([content], {type: 'text/plain'});
Я могу получить штраф в одном вложении со следующим:

Код: Выделить всё

db_notes.getAttachment(id, 'content.txt').then(function(blob) {
const reader = new FileReader();
reader.readAsText(blob);
reader.onload = () => {
processContent(reader.result);
};
}).catch(function(err) {
console.log(err);
});
< /code>
Но мне нужно получить все документы с извлеченным содержанием Blob.db_notes.allDocs({
include_docs: true
,  attachments: true
,  binary: true
}).then(function(result) {
allNotesIncContent = result.rows.map(({doc}) => docToDocObj(doc));
console.log("allNotesIncContent\n ", allNotesIncContent );
}).catch(function(err) {
console.log(err);
});
< /code>
и < /p>
function docToDocObj(doc) {
rawBlobData = doc._attachments['content.txt'].data;
rawBlobData.text().then(function(content) {
objToReturn =
{  id: doc._id
,  rev: doc._rev
,  content: content
}
console.log("objToReturn\n ", objToReturn );
return objToReturn;
}).catch(function(err) {
console.log("Blob.text error: ", err);
});
};
At the console I see:

(9) [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]

followed by a succession of

objtoreturn

{id: '1756756073636', rev: '1-7bd7518103126469453c4cf04968b189', контент: 'некоторые текст',} < /p>

Это связано с тем, что rawblobdata.text () -асинхронная функция, которая требует слишком много времени, чтобы вернуть свои результаты.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... nous-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»