For anyone who may have a similar issue and find this thread, here’s the 
workaround I used.

Desired behavior was to have an AJAX submit on a form that includes a drawing 
widget.  The drawing can’t be saved directly; it needs to be asked to export 
its data into a hidden text field which can be saved.  The widget’s export 
operation returns a Promise.

Strategy:

1) Instead of an AjaxSubmit button, I’m using a regular <button>
2) That button has an onclick that invokes the export operation, with a “then” 
clause that emits a custom javascript event.
3) I attach an AjaxFormSubmitBehavior listening to this custom event, so the 
form is submitted when the data is ready.

I think it would be a nice feature in the future to think through a reasonable 
integration of the ajax handlers with Promises, as they are likely to become 
more commonly used now that they are reasonably standardized.

Boris


On 5/3/17, 3:08 PM, "Martin Grigorov" <[email protected]> wrote:

    Hi,
    
    No, Wicket doesn't use the return values for all handlers but
    "preconditions" [1].
    And even for preconditions the only value that matters is the literal
    *false.*
    
    
    1.
    
https://github.com/apache/wicket/blob/b24decd2f60983c11e75e5f2c34d0c6a93b56426/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js#L614
    
    Martin Grigorov
    Wicket Training and Consulting
    https://twitter.com/mtgrigorov
    
    On Wed, May 3, 2017 at 5:52 PM, Boris Goldowsky <[email protected]> wrote:
    
    > Is there any way to use a method that returns a promise as the onBefore of
    > an IAxaxCallListener?  I don’t want the ajax operation to move forward
    > until the promise resolves.  Due to the nature of promises in Javascript,
    > there doesn’t seem to be a way to simply wait for it.
    >
    > Boris
    >
    >
    


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to