yield-async

0.0.2 • Public • Published

yield-async Logo
A simple tool to write program synchronously but run it asynchronously using yield.

NPM Version  Node.js Version


Installation

$ npm install yield-async

To use yield-async you must be running node 0.11.13 or higher for generator, and must run node(1) with the --harmony flag. If you don't install node 0.11.13, you can install it using package n to run your app.js:

$ npm install -g n
$ n 0.11.13
$ node --harmony app.js

If you don't like typing --harmony, add an alias to your shell profile:

alias node='node --harmony'

Example

var async = require('yield-async');
var fs = require('fs');
 
// read one file
var read = function*(path, resume) {
  var data = yield fs.readFile(path, resume);
  return data;
}
 
// read all files in one dir
var readAll = function*(path, resume) {
  var dir = yield fs.readdir(path, resume);
  if (dir.length === 0) {
    throw new Error('no file');
  }
 
  var files = {};
  for (var i = 0; i < dir.length; i++) {
    files[dir[i]] = yield async(read, [path + '/' + dir[i]], resume);
  }
 
  return files;
}
 
async(readAll, [__dirname], function(err, res) {
    console.log(err);
    console.log(res);
});

Usage

async function

async function accepts 3 parameters:
generator the generator function you want to run
parameters the parameters passing to the generator function
callback callback function

resume

every generator function must have the resume paramater, it will be used to 'replace' the callback function and resume the generator.

catch/throw

you can use throw to throw an error, and you can use catch to catch an error.

return

you can use return to return the result.

Readme

Keywords

Package Sidebar

Install

npm i yield-async

Weekly Downloads

0

Version

0.0.2

License

MIT

Last publish

Collaborators

  • amoa400