Commit db91dbc
committed
luci-static: fix race condition when probing features
follow-up to a2fce95
hasSystemFeature() inspects the cached result of
probeSystemFeatures() which needs to have completed.
Once all of the legacy (Lua) stuff is ready, this block
runs:
initDOM() {
...
L.loaded = true;
document.dispatchEvent(new CustomEvent('luci-loaded'));
},
This commit now calls View.load() once system feature
probing has completed, and LuCI itself has loaded. This
ensures that the following load paradigm succeeds:
return view.extend({
load() {
return Promise.all([
...,
L.hasSystemFeature('x'),
]);
}, ...
The luci-loaded check prevents waiting when LuCI is already
loaded (the common case after initial page load), but the
listener handles the race condition where a View is
instantiated before initDOM() completes.
The flow:
If L.loaded is true: initDOM() already ran --> skip waiting,
proceed immediately.
If L.loaded is false: initDOM() hasn't run yet --> add
listener --> wait for it to complete.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>1 parent 74d2192 commit db91dbc
1 file changed
+8
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1899 | 1899 | | |
1900 | 1900 | | |
1901 | 1901 | | |
1902 | | - | |
1903 | | - | |
1904 | | - | |
1905 | | - | |
1906 | | - | |
1907 | | - | |
1908 | | - | |
1909 | | - | |
1910 | | - | |
1911 | | - | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
1912 | 1910 | | |
1913 | 1911 | | |
1914 | 1912 | | |
| |||
0 commit comments