рабочий вариант promise

This commit is contained in:
Dmitry Borisenko
2022-02-11 19:32:05 +01:00
parent e7c68eeedb
commit 46a3d9f013
2 changed files with 24 additions and 25 deletions

View File

@@ -36,8 +36,6 @@
//let myip = document.location.hostname;
let myip = "192.168.88.235";
function promiseResolve() {}
//Flags
let showInput = false;
let showModalFlag = false;
@@ -809,6 +807,25 @@
errorsJson[alarmKey] = 0;
wsSendMsg(selectedWs, '/rorre|{"' + alarmKey + '":0}');
}
//*******************************************************awaiting********************************************************************/
let promiseResolve;
let myPromise = 0;
async function connect() {
console.log("connect start");
saveSettings();
return new Promise(function (resolve, reject) {
setTimeout(() => reject(), 10000);
promiseResolve = resolve;
});
}
function activate() {
myPromise = connect();
}
//*******************************************************initialisation********************************************************************/
onMount(async () => {
console.log("[i]", "mounted");
@@ -890,7 +907,7 @@
<ConfigPage configJson={configJson} widgetsJson={widgetsJson} itemsJson={itemsJson} saveConfig={() => saveConfig()} />
</Route>
<Route path="/connection">
<ConnectionPage settingsJson={settingsJson} errorsJson={errorsJson} promiseResolve={() => promiseResolve()} ssidJson={ssidJson} rebootEsp={() => rebootEsp()} ssidDropdownClick={() => ssidDropdownClick()} saveSettings={() => saveSettings()} mqttConnect={() => mqttConnect()} />
<ConnectionPage settingsJson={settingsJson} errorsJson={errorsJson} myPromise={myPromise} activate={() => activate()} ssidJson={ssidJson} rebootEsp={() => rebootEsp()} ssidDropdownClick={() => ssidDropdownClick()} saveSettings={() => saveSettings()} mqttConnect={() => mqttConnect()} />
</Route>
<Route path="/system">
<SystemPage settingsJson={settingsJson} errorsJson={errorsJson} rebootEsp={() => rebootEsp()} cancelAlarm={(alarmKey) => cancelAlarm(alarmKey)} version={version} />

View File

@@ -3,30 +3,12 @@
import Alarm from "../components/Alarm.svelte";
export let settingsJson;
//export let settingsJsonParced;
export let errorsJson;
export let errorsJsonParced;
export let ssidJson;
//export let ssidJsonParced;
export let promiseResolve = () => {};
export let myPromise;
async function connect() {
console.log("connect start");
errorsJsonParced = false;
saveSettings();
console.log("errorsJsonParced:", errorsJsonParced);
return new Promise(function (resolve, reject) {
//установим таймаут на 1 секунду, если пройдет секнда и не будет resolve() то система выдаст ошибку
setTimeout(() => reject(), 20000);
promiseResolve = resolve;
});
}
let myPromise = 0; //connect();
let promise = 0;
let next = () => new Promise((resolve) => setTimeout(() => resolve(), 1000));
export let activate = () => {};
export let ssidDropdownClick = () => {};
export let saveSettings = () => {};
@@ -36,7 +18,7 @@
{#await myPromise}
<p>Connecting...</p>
<button class="btn-lg" on:click={() => promiseResolve()}>resolve</button>
<!--<button class="btn-lg" on:click={() => promiseResolve()}>resolve</button>-->
{:then}
<div class="grd-2col1">
<Card title="Подключение к WiFi">
@@ -92,7 +74,7 @@
</div>
{/if}
<button class="btn-lg" on:click={() => (myPromise = connect())}>try</button>
<button class="btn-lg" on:click={() => activate()}>try</button>
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
</Card>