MARKLESS_SYNC_POLICY_SECOND_CANCEL
Only one cancel statement becomes the synchronous event policy: a Markless compiler error.
Error from the compiler, while it builds your .tsrx files.
What happened
Markless prints the message, the reason, and a suggestion:
MARKLESS_SYNC_POLICY_SECOND_CANCEL: This <action>() for <attributeName> sits outside the statement the synchronous policy was extracted from, so it would run only after the lazy handler loads and never reach the event.
The compiler lifts one guarded cancel per handler into the policy the resumer applies before the handler symbol loads; every other cancel stays in the lazy handler, where the event has already finished dispatching.
Fold the guards into one extractable condition, e.g. `if (first || second) <eventParam>.<action>()`, or remove the extra <action>().
https://markless.dev/errors/MARKLESS_SYNC_POLICY_SECOND_CANCEL
Words in angle brackets change from case to case.
How to fix it
Start with the suggestion in the message above.
This page has no guide yet. Help write it.
Where it comes from
@markless/compiler raises this code. Source:
Read how to read a Markless error, or go back to all error codes.
