Показать сообщение отдельно
  #4 (permalink)  
Старый 15.05.2019, 23:24
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Так вам нужно дождаться конца, а затем только использовать...
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);
});
Должно работать, если только я не сделал ошибки! Работает?
Ответить с цитированием