Как получить возвращаемое значение из события? [dубликат]

Да, это определенно возможно.

Поскольку жесткие диски исключительно медленны по сравнению с остальной частью вашего компьютера, практически всегда существует задержка между тем, когда части программного обеспечения сообщают о записи в файл и этот файл фактически физически записывается на жесткий диск. Это мешает медленным дискам сдерживать использование компьютера. Но до тех пор, пока эта запись не закончится, данные могут существовать только в ОЗУ вашего компьютера.

Существуют механизмы, которые приложения могут использовать для обеспечения того, чтобы данные были записаны на диск, но для их использования существует значительная стоимость, поэтому низкоуровневое приложение, подобное tar, не будет использовать их и полагаться на инструмент более высокого уровня для обеспечения целостности данных.

Поскольку tar не делает этого для вас, вы можете убедиться, что любой ожидающие записи были выгружены на диск с помощью команды [). После того, как эта команда вернется, вы можете быть уверены, что все записи на диске, которые были выполнены до запуска sync, были успешно записаны на жесткий диск.

Кроме того, если вы полностью отключите свою систему, один из последних происходит то, что все ожидающие записи синхронизируются. Поэтому в случае потери питания данные могут быть не записаны на диск, но в случае чистого закрытия все должно быть.

0
задан 13 August 2018 в 15:18

1 ответ

Вы не можете вернуть значение версии, но обещание:

function dbGameVersion (key) {
    var transaction = db.transaction(["file"]);
    var objectStore = transaction.objectStore("file");
    var version = 0;

    return new Promise(function(resolve) {
        var request = objectStore.get(key);
        request.onsuccess = function(event) {
            if(request.result) {
               // Return stored game version
               version = request.result.file.game[0].version;
            } else {
            // Game not yet in DB
               version = -1;
            }
            resolve(version);
        };        
    });
}

// And you can then use this function like below:

dbGameVersion(key).then(function(version) {
    // You get the version value here:
    console.log(version);
});
1
ответ дан 15 August 2018 в 17:01
  • 1
    Tnx Faly, работает как шарм! Не знал о обещании и узнал об этом! – Jonny 13 August 2018 в 16:52

Другие вопросы по тегам:

Похожие вопросы: