node语言中全是回调, 比如, 常见的模块request
var a;request ( option, function(error, response, body){ a = body;})console.log(a)复制代码
这种情况下, 会打印出undefined, 当我们发送一个请求的时候, 这段代码会异步执行, 而当执行到 console.log(a) 时, request 方法说不定还没有执行, 那么, 应该怎样做才能让参数a得到body里面的值呢, 最简单的方法是执行回调函数.
var a;function getBody (callback){ request (option, function(error, response, body){ a = body callback(a)})}getBody(function(a)){ console.log(a)}复制代码
这样, 就会把callback里面的值传入到现在需要的函数里面了. 简单的理解就是定义了一个callback, 这个callback返回了a, 而a是在request里面执行完成后返回的.
怎样使用 node + redis + socket.io 倒计时程序
当拥有很多客户跟很多客服的时候(每一个客户只能联系一个客服), 可能会根据客户的某些状态来选择为当前用户建立一个计时, 当时间到的时候触发这个计时, 通知客户跟客服. 但是, 当用户数量过多的时候, 不可能为每一个用户建立一个计时, 因此, 下面介绍怎样使用一个计时程序来完成对于所有用户的计时. 用到的主要函数 , clearTimeout, 以及node reids两个工具. 简单配置, 其次, 搭建安装, 这些假装你会了. socket.io 假设也了解. 这里 主要讲述下设计以及实现.
下面是实际中出现的场景
- 好多个人, Cus1 Cus2 ... 跟 Ser1 Ser2...
- 这么多人在进行通话, Cus1<=>Ser1, Cus2<=>Ser2, Cus3<=>Ser3 ...
- 每一个人有独立的socket.id. Cus1.socketId, Ser1.socketId, Cus2.socketId ...