Stack Overflow на русском Asked by Aynur Sibagatullin on December 4, 2020
Мне нужно быстро сохранять и получать данные из хранилища. На данный момент я хочу использовать 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:pathsrcnode_modulesdeasyncbuilddeasync.node
→ C:pathsrcnode_modulesdeasyncbuildDebugdeasync.node
→ C:pathsrcnode_modulesdeasyncbuildReleasedeasync.node
→ C:pathsrcnode_modulesdeasyncoutDebugdeasync.node
→ C:pathsrcnode_modulesdeasyncDebugdeasync.node
→ C:pathsrcnode_modulesdeasyncoutReleasedeasync.node
→ C:pathsrcnode_modulesdeasyncReleasedeasync.node
→ C:pathsrcnode_modulesdeasyncbuilddefaultdeasync.node
→ C:pathsrcnode_modulesdeasynccompiled6.5.0win32x64deasync.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;
}
Answered by Unknown User on December 4, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP