Async/Await syntax support for Q promises
// Drop-in replacement to require('q')var Q = require'q-jscex';var HTTP = require'q-http';// Define an Async function with a special $await keyword in itvar fetch = evalQasync$// $await takes anything that returns a Q Promisevar buf = $await HTTPreadurl ;// ...pauses one second...$await Qdelay1000 ;// ...do something with the returned buffer...return buf;;// Return value of Async functions is always a Q Promisefetch''donefailfin;
This module exports a Q root object (
Q) containing an
Q.async.$ helper; it compiles a regular function into one
that returns a Q Promise object.
Functions defined with
Q.async.$ has access to an extra
keyword, which implicitly waits for other Q Promise objects.
example.js for a sample usage, and type
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.
The underlying JIT compiler is available as the
- Jscex: http://jscex.info/
- Q: https://github.com/kriskowal/q
- LiveScript: https://gkz.github.com/LiveScript
To the extent possible under law, 唐鳳 has waived all copyright and related or neighboring rights to q-jscex.
This work is published from Taiwan.