Так вам нужно дождаться конца, а затем только использовать...
function logerr(err) {
console.log('Database error: ', err);
}
function connectDB() {
return new Promise((resolve, reject) => {
const request = indexedDB.open('library', 1);
request.onerror = reject;
request.onsuccess = () => resolve(request.result);
request.onupgradeneeded = async e => {
e.currentTarget.result.createObjectStore('users', {
keyPath: 'uid'
});
resolve(await connectDB());
};
});
}
connectDB().then(db => new Promise((resolve, reject) => {
var tx = db.transaction("users", "readonly");
var store = tx.objectStore("users");
var index = store.index("by_title");
var request = index.get("my");
request.onsuccess = () => {
var matching = request.result;
if (matching !== undefined) {
// A match was found.
// Вот тут я вижу в консоли значение matching.uid
console.log('DB - ' + matching.uid);
// Присваиваю вроде как значение переменным
resolve(matching.uid);
} else {
// No match was found.
console.log('DB null');
reject();
}
};
})).catch(logerr).then(token => {
console.log("Token 1 " + token + " Token 2 " + token);
});
Должно работать, если только я не сделал ошибки! Работает?