throw error after 5 seconds if wallet-core didn't reply to a command
This commit is contained in:
parent
2c14a180c1
commit
252382a937
@ -14,8 +14,13 @@
|
||||
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
import { classifyTalerUri, Logger, TalerUriType } from "@gnu-taler/taler-util";
|
||||
import { WalletOperations } from "@gnu-taler/taler-wallet-core";
|
||||
import {
|
||||
classifyTalerUri,
|
||||
Logger,
|
||||
TalerErrorCode,
|
||||
TalerUriType,
|
||||
} from "@gnu-taler/taler-util";
|
||||
import { TalerError, WalletOperations } from "@gnu-taler/taler-wallet-core";
|
||||
import { BackgroundOperations } from "../wxApi.js";
|
||||
import {
|
||||
BackgroundPlatformAPI,
|
||||
@ -321,12 +326,15 @@ async function sendMessageToBackground<
|
||||
return new Promise<any>((resolve, reject) => {
|
||||
logger.trace("send operation to the wallet background", message);
|
||||
let timedout = false;
|
||||
setTimeout(() => {
|
||||
const timerId = setTimeout(() => {
|
||||
timedout = true;
|
||||
reject("timedout");
|
||||
}, 2000);
|
||||
throw TalerError.fromDetail(TalerErrorCode.GENERIC_TIMEOUT, {});
|
||||
}, 5 * 1000); //five seconds
|
||||
chrome.runtime.sendMessage(messageWithId, (backgroundResponse) => {
|
||||
if (timedout) return false;
|
||||
if (timedout) {
|
||||
return false; //already rejected
|
||||
}
|
||||
clearTimeout(timerId);
|
||||
if (chrome.runtime.lastError) {
|
||||
reject(chrome.runtime.lastError.message);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user