Мне нужно быстро сохранять и получать данные из хранилища. На данный момент я хочу использовать electron-json-storage.
Вот так на данный момент выглядит функция возврата значения по ключу:
get: function(key) {
var value;
var done = false;
storage.get(key, function(error, data) {
if (error) {
console.log("Get.Err. "+key+" : "+error);
}
console.log("Get "+key+" : "+data.Key+" - "+data.Key.pubKey);
value = data.Key;
done = true;
});
//require('deasync').loopWhile(function(){return !done;});
return value;
}
Однако из-за того, что результат не возвращается напрямую, функция get
возвращает undefined
.
Я хотел использовать модуль deasync
, но тогда выскакивает ошибка как тут. Я думал об использовании electron-config, только там я не смог сохранить и получить обратно ArrayBuffer
.
Что делать? Может использовать локальную БД?
Обновление
Возвращать Promise или принимать колбеки я не могу, поскольку эта функция возвращает значение модулю, который я изменить не могу.
Обновление №2
Я пытался использовать deasync. При использовании выскакивает такая ошибка:
Uncaught Error: Could not locate the bindings file. Tried:
→ C:\path\src\node_modules\deasync\build\deasync.node
→ C:\path\src\node_modules\deasync\build\Debug\deasync.node
→ C:\path\src\node_modules\deasync\build\Release\deasync.node
→ C:\path\src\node_modules\deasync\out\Debug\deasync.node
→ C:\path\src\node_modules\deasync\Debug\deasync.node
→ C:\path\src\node_modules\deasync\out\Release\deasync.node
→ C:\path\src\node_modules\deasync\Release\deasync.node
→ C:\path\src\node_modules\deasync\build\default\deasync.node
→ C:\path\src\node_modules\deasync\compiled\6.5.0\win32\x64\deasync.node
Способ исправления этого я не нашел.
Делай так
// Зависимость deasync
const deasync = require('deasync');
// ....
get: function(key) {
var value;
storage.get(key, function(error, data) {
if (error) {
console.log("Get.Err. "+key+" : "+error);
}
console.log("Get "+key+" : "+data.Key+" - "+data.Key.pubKey);
value = data.Key;
});
// Держим код на месте, пока не получена переменная
while(value === undefined)
deasync.runLoopOnce();
return value;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
При сборке проекта содержимое последней точки входа не попадает в итоговую сборку:
ЗдравствуйтеПомогите, пожалуйста, разобраться в том, как вызвать метод, который привязан к событию нажатия кнопки
Есть блок - на картинкевозле поля выскакивает блок с ошибкой если она есть