node常见问题

怎样解决回调 (1)

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 倒计时程序

当拥有很多客户跟很多客服的时候(每一个客户只能联系一个客服), 可能会根据客户的某些状态来选择为当前用户建立一个计时, 当时间到的时候触发这个计时, 通知客户跟客服. 但是, 当用户数量过多的时候, 不可能为每一个用户建立一个计时, 因此, 下面介绍怎样使用一个计时程序来完成对于所有用户的计时. 用到的主要函数 setTimeout, clearTimeout, 以及node reids两个工具. 简单配置redis, 其次, 搭建安装node, 这些假装你会了. socket.io 假设也了解. 这里 主要讲述下设计以及实现.

下面是实际中出现的场景

  • 好多个人, Cus1 Cus2 ... 跟 Ser1 Ser2...
  • 这么多人在进行通话, Cus1<=>Ser1, Cus2<=>Ser2, Cus3<=>Ser3 ...
  • 每一个人有独立的socket.id. Cus1.socketId, Ser1.socketId, Cus2.socketId ...

转载于:https://juejin.im/post/5a30a954f265da432d281675

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值