Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Async/Await support for jQuery 1.5+
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
samples * GitHub ribbon has moved to S3.
src changed to more idiomatic LiveScript, JS compilation is unchanged
Makefile * Add a new "async-jquery" monad distinct from Task. * Add link to demo.
example.js * Remove an unused empty backcall in
package.json * First step in porting to non-node.js runtimes.



// Drop-in replacement to require('jquery')
var $ = require('jscex-jquery');

// Define an Async function with a special $await keyword in it
var fetch = eval($.async(function(url) {
    // $await takes anything that returns a Promise
    var html = $await( $.get(url) );
    // ...pauses one second...
    $await( $.async.sleep(1000) );
    // something with the returned html...
    return html;

// Return value of the Async function is always a Promise

Demo (HTML5 Canvas required)


This module exports a jQuery root object ($) containing an $.async helper; it compiles a regular function into one that returns a Promise object.

Functions defined with $.async has access to an extra $await keyword, which implicitly waits for other Promise objects.

In addition to jQuery's built-in Promise functions ($.ajax, etc), we also provide $.async.sleep for delaying execution in a synchronous fashion.

Please see example.js for a sample usage, and type make demo to see it in action.

The source code is in src directory and written in LiveScript. Note that LiveScript is not a runtime dependency of this module; it's only used for development.

For use in client-side browser environments, please see examples in the samples directory.

The underlying JIT compiler is available as the $.Jscex object.

See Also

CC0 1.0 Universal

To the extent possible under law, 唐鳳 has waived all copyright and related or neighboring rights to jscex-jquery.

This work is published from Taiwan.

Something went wrong with that request. Please try again.