From 70e3fbf322bab85afbe0cb58ebb647c03bee1b08 Mon Sep 17 00:00:00 2001 From: LAOGOU-666 <441059767@qq.com> Date: Tue, 11 Mar 2025 18:39:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0=E5=90=8E?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=BB=84=E4=BB=B6=E5=87=BA=E7=8E=B0?= =?UTF-8?q?object=20promise=20=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/hot_reload.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/web/hot_reload.js b/web/hot_reload.js index 8302a44..fc935d0 100644 --- a/web/hot_reload.js +++ b/web/hot_reload.js @@ -77,15 +77,24 @@ app.registerExtension({ node.size = state.size; Object.assign(node.properties, state.properties); if (node.widgets) { - node.widgets.forEach(w => { + for (const w of node.widgets) { if (state.widgets[w.name] !== undefined) { - if (w.loadValue) { - w.loadValue(state.widgets[w.name]); - } else { - w.value = state.widgets[w.name]; + try { + if (w.loadValue) { + await w.loadValue(state.widgets[w.name]); + } else { + const value = state.widgets[w.name]; + if (value instanceof Promise) { + w.value = await value; + } else { + w.value = value; + } + } + } catch (error) { + console.warn(`[HotReload] Failed to restore widget value for ${w.name}:`, error); } } - }); + } } } }