Я знаю, что этот вопрос задают несколько раз несколькими способами.Но я действительно не понимаю:
У меня есть обещание с разрешенным значением.Я могу console.log этого объекта, и все, кажется, в порядке.Я вижу то, что хочу видеть.
Я использую PouchDB и NuxtJS (VueJS)
import PouchDB from 'pouchdb'
let testdb = new PouchDB('testdb');
let testDoc = function () {
testdb.get('2').then(function (doc) {
console.log(doc);
}).catch(function (err) {
console.log(err);
});
}
Это прекрасно работает.Мой результат - это то, что я ожидаю и надеюсь увидеть:
{
text: "testen",
_id: "2",
_rev: "1-c7e7c73d264aa5e6ed6b5cc10df35c5a"
}
Отлично.Но сейчас я пытаюсь вернуть это значение, чтобы другие функции могли получить к нему доступ.Особенно возвращаю эти данные.Например, в VueJS:
// ..
export default {
data() {
return {
doc: testDoc
}
}
}
Так что я могу получить к нему доступ через экземпляр.Но, конечно, если я сделаю это так, данные обещают
data: [
doc: promise
]
Но мне нужно значение, а не то, что оно есть.Я не понимаю, как вернуть значение.
Я прочитал несколько How To´s.Я думаю, я понимаю разницу между Callback и Promise.С обеими и асинхронными функциями я получаю одинаковый результат.Но все примеры всегда с console.log ().Но это работает для меня.
Есть ли у кого-нибудь горячий пример для доступа к этому значению (области или вложенности?)?
Если я верну данные:
let testdb = new PouchDB('testdb');
let testDoc = function () {
testdb.get('2').then(function (doc) {
return doc;
}).catch(function (err) {
console.log(err);
});
}
Почему не testDoc
значение сейчас?Или где хак это значение?
Я всегда делал это, передавая значение в хранилище vuex.Это также прекрасно работает.
let fetchOrga = async function({ store }) {
try {
let orgaDoc = await orgadb.get('orga');
store.commit('orgaUpdate', orgaDoc)
} catch (err) {
console.log(err);
}
}
Но, как я уже сказал, я хочу, чтобы эти данные напрямую контролировались через IndexedDB