NodeJS Callback

本文主要介绍NodeJS Callback,包括NodeJS,Callback等相关内容,希望对大家有所帮助。

原创转载请注明出处:http://agilestyle.iteye.com/blog/2352487

最近特么的一直被领导安排去搞NodeJS,卧槽,你叫我一个从事后端开发的人去搞JS,顿时心中各种苦啊,但是也没有办法,人在屋檐下,不得不低头啊,刚开始还好,一些JS基本的Feature都能理解,很快上手,但是一到项目当中,代码里面特么各种callback,程序入口进去了,就出不来了,这尼玛,各种不爽,所以这两天花了点时间研究了一下JS的callback,因为一直从事Java开发的同学,一开始对这个还是比较难以理解的,NodeJS中程序的执行会有一大堆callback调用,搞清楚这个非常有必要,除非你不用JS。

维基百科上的解释:

In computer programming, a callback is a reference to a piece of executable code that is passed as an argument to other code.

jQuery文档的解释:

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed. 

先看一个简单地例子:

function mainFunction(callback) {
	var someGirl = 'A girl who alreay has a boy friend';

	callback(someGirl);
}

mainFunction(function(a) {
	console.log("Hello: ");
	console.log(a);
});

mainFunction(function(b) {
	console.log("World: ");
	console.log(b);
});

Run

NodeJS Callback

Note:

鄙人对上述代码的诠释就是,比如你和你们同事一起去参加年会,舞台上看到一个颜好声甜身材曼妙的姑娘,于是乎,心中的欲望开始泛滥,想迫不及待去找个那个姑娘搭个讪认识一下,加个微信,留个联系方式什么的;但是呢,姑娘还在表演中,你又不立刻行动,只能先定个计划(等表演结束去搭讪她),这个计划就是callback,也就是简简单单的一个函数声明,具体的付诸实践呢,还能等表演结束之后,你去走套路进行搭讪,也就是函数的具体实现(每个人的搭讪方式不同,所以实现的方式也各有不同),最后非常可惜,你和你同事都搭讪失败,这个姑娘已经名花有主了。

再来看一个正常一点的例子,找点感觉

var add = function(a, b) {
	return a + b;
};

var substract = function(a, b) {
	return a - b;
};

var multiply = function(a, b) {
	return a * b;
};

var divide = function(a, b) {
	return a / b;
};

var getParams = function(a, b) {
	console.log(a + ":" + b);
	return "200";
};

var calc = function(num1, num2, callback) {
	return callback(num1, num2);
};


console.log(calc(4, 2, add));
console.log(calc(4, 2, substract));
console.log(calc(4, 2, multiply));
console.log(calc(4, 2, divide));

console.log(calc(4, 2, getParams));

// anonymous function
console.log(calc(4, 2, function(a, b) {
	return a * b + a / b;
}));

Run 

NodeJS Callback
 

  • NodeJS Callback
  • 大小: 11.4 KB
  • NodeJS Callback
  • 大小: 8.7 KB
  • 查看图片附件

文章内容就介绍到这儿,希望对大家有所帮助。

您可以选择一种方式赞助本站

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: