Code Monkey home page Code Monkey logo

pumpkin's Introduction

Pumpkin

Pumpkin is a nodejs(or javascript) module for solving callback hell.

Example

//If you want to use pumpkin on html, you don't have to require.
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.setData({commonData : 'commonData'});

pumpkin.addWork('work1', function()
{
	var that = this;
	setTimeout(function()
	{
		console.log('- start work1');
		console.log('execute after 1 second');
		console.log('commonData : ', that.data.commonData);
		
		//set common data.
		that.data.commonData2 = 'commonData2';
		that.next('If you want to pass parameter to next work.');
	}, 1000);
});

pumpkin.addWork('work2', function()
{
	var params = arguments;
	var that = this;
	setTimeout(function()
	{
		console.log('');
		console.log('- start work2');
		console.log('execute after 0.5 second');
		console.log('commonData2 : ', that.data.commonData2);
		console.log('params : ', params[0]);
		that.next();
	}, 500);
});

pumpkin.execute(['work1', 'work2'], function()
{
	console.log('');
	console.log("done : ", this.data);
});

//If you want to using async.
pumpkin.executeAsync(['work1', 'work2'], function()
{
	console.log('');
	console.log("done : ", this.data);
});

Error handling

var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	console.log(this.data.error);
});

pumpkin.execute(['work'], function()
{
	console.log('');
	console.log("done : ", this.data);
}, function(workName, error)
{
	console.log(workName, error.stack);
});
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	this.error('error');
});

pumpkin.execute(['work'], function()
{
	console.log('');
	console.log("done : ", this.data);
}, function(workName, error)
{
	console.log(workName, error);
});

Execute work with parameter.

var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	this.next();
});

pumpkin.addWork('work2', function(params)
{
	console.log('username : ', params.username);
	this.next();
});

pumpkin.execute(['work', {name : 'work2', params : {username : 'user'}}], function()
{
	console.log("done");
}, function(workName, error)
{
	console.log(workName, error.stack);
});

pumpkin's People

Contributors

tonite31 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.