Skip to content

Commit

Permalink
Execute JS in the very end of the message processing event loop (#4459)
Browse files Browse the repository at this point in the history
* Execute JS in the very end of the message processing event loop

Fixes #4444

* Move JS execution via post flush listener after all listeners
  • Loading branch information
Denis committed Aug 1, 2018
1 parent 471b67e commit 8ae9bd9
Showing 1 changed file with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -378,10 +378,14 @@ assert getServerId(valueMap) == -1

if (json.hasKey(JsonConstants.UIDL_KEY_EXECUTE)) {
// Invoke JS only after all tree changes have been
// propagated
// propagated and after post flush listeners added during
// message processing (so add one more post flush listener which
// is called after all added post listeners).
Reactive.addPostFlushListener(
() -> registry.getExecuteJavaScriptProcessor().execute(
json.getArray(JsonConstants.UIDL_KEY_EXECUTE)));
() -> Reactive.addPostFlushListener(() -> registry
.getExecuteJavaScriptProcessor()
.execute(json.getArray(
JsonConstants.UIDL_KEY_EXECUTE))));
}

Console.log("handleUIDLMessage: "
Expand Down

0 comments on commit 8ae9bd9

Please sign in to comment.