您的位置:首页 > Web前端 > Node.js

nodejs设计思想杂技二 callback 模式

2016-07-05 23:03 801 查看
回调。。。。与return

回调函数如何替代return的功能?

同步的函数

function add(a, b) {

return a + b;

}

异步的函数

function add(a, b, callback) {

callback(a + b);

}

同步的函数执行后return

异步的函数执行完将结果放入callback中

同步函数的 执行过程是立即执行,异步函数如上一章所述。

一个闭包。

同步改异步

同步的代码

var fs = require('fs');

var cache = {};

function consistentReadSync(filename) {

if(cache[filename]) {

return cache[filename];

} else {

cache[filename] = fs.readFileSync(filename, 'utf8');

return cache[filename];

}}

异步的代码

var fs = require('fs');

var cache = {};

function consistentReadAsync(filename, callback) {

if(cache[filename]) {

process.nextTick(function() {

callback(cache[filename]);

});

} else {

//asynchronous function

fs.readFile(filename, 'utf8', function(err, data) {

cache[filename] = data;

callback(data);

});

}

}

用nexttick将函数放在event queue的top,下次event loop执行时第一个就是他

setImmediate()将函数放在event queue的底部,不会像nexttick那样可能会把别人饿死。。。

欢迎加q群243153894交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node nodejs callback