0.0.2 • Published 8 years ago

yieldflow v0.0.2

Weekly downloads
5
License
MIT
Repository
github
Last release
8 years ago

yieldflow

Asynchronous becomes synchronous with the yield

Install

npm install yieldflow

Usage

var yieldflow = require('yieldflow');

var assert = require('assert');

function login(username, password, callback) {
    assert(username);
    assert(password);
    assert(callback);
    setTimeout(()=>callback(0), 1000);
}

function sendmsg(msg, callback) {
    assert(msg);
    setTimeout(()=>callback(msg), 500);
}

yieldflow(function* (next){
    var code = yield login('user', '123', (code)=>{
        next(code);
    });
    console.log('login: ' + code);

    var sendText = yield sendmsg('xxx', (text)=>{
        next(text);
    });
    console.log('send: ' + sendText);

    sendText = yield sendmsg('fuck', (text)=> {
        next(text);
    });
    console.log('send: ' + sendText);
});

result print:

login: 0
send: xxx
send: fuck

login and sendmsg is two asyns function.

yeildflow pass a next function to you, you will call next(result) in the async function callback to return the result to yield operation (var code = yield login(...);) and move one step.

Have fun.

License

MIT: http://rem.mit-license.org