新足迹

 找回密码
 注册

精华好帖回顾

· before and after school care (2008-7-18) 花生 · 给大家拜年~~雪花家的年夜饭~~(做法已上) (2010-2-13) 紫雪花
· 找工日记- 8月21更新 320楼 offer来了 (2007-6-26) lesli1109 · 开个贴分享花臂少女生食的不归路。。。欢迎大家指教交流(6楼最新更新-蔬菜膏材料) (2018-4-10) 晴天。
Advertisement
Advertisement
查看: 4563|回复: 11

Node.JS 返回value 到function 外 [复制链接]

发表于 2016-6-19 17:43 |显示全部楼层
此文章由 DBOY123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DBOY123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
需要引用下面的reply 值到function 外?

reply 返回是value of the key, get()返回是boolean


client.get("missingkey", function(err, reply) {
    // reply is null when the key is missing
    console.log(reply);
});

有人帮帮忙吗?
[color=Red
Advertisement
Advertisement

发表于 2016-6-19 18:09 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2016-6-19 18:20 |显示全部楼层
此文章由 DBOY123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DBOY123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
谢谢,能帮忙解释一下call back 怎么用吗?

发表于 2016-6-19 18:56 |显示全部楼层
此文章由 DBOY123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DBOY123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nali 发表于 2016-6-19 17:09
http://stackoverflow.com/questions/7255956/return-results-from-a-function-javascript-nodejs

http:/ ...

谢谢,能帮忙解释一下call back 怎么用吗?
[color=Red

发表于 2016-6-19 19:23 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
简单说,callback就是把一个函数当成变量传递给另一个函数并在其内部被调用。nodejs的callback默认都是异步执行的,你不能用异步执行的函数去修改其scope外的东西,因为这是2个独立的processes。你需要用某些机制例如observable去实现。不说了,越说越复杂了,哈哈哈。

发表于 2016-6-19 21:24 |显示全部楼层
此文章由 MR.Q 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 MR.Q 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没那么复杂,callback, promise, 都行。
最好能把你的代码贴全点,代码中写上注释,说清楚你想做什么, 我才好给个更具体的答案。
Advertisement
Advertisement

发表于 2016-6-19 21:31 |显示全部楼层
此文章由 DBOY123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DBOY123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
MR.Q 发表于 2016-6-19 20:24
没那么复杂,callback, promise, 都行。
最好能把你的代码贴全点,代码中写上注释,说清楚你想做什么, 我 ...

谢谢

client.get("missingkey", function(err, reply) {
    // reply is null when the key is missing
    console.log(reply);
});


console.log(reply);

就是要在global 用reply的值

[color=Red

发表于 2016-6-19 21:44 |显示全部楼层
此文章由 MR.Q 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 MR.Q 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DBOY123 发表于 2016-6-19 20:31
谢谢

client.get("missingkey", function(err, reply) {

var foo;
client.get("missingkey", function(err, reply) {
    // reply is null when the key is missing
    console.log(reply);
    foo = reply;//这样就可以了, 但这里有个问题,foo只有在http response了之后,才会有值。 比如下面这行,foo此时是undefined
});
console.log(foo); //此时为undefined, 因为httpclient在这里还没返回。

你的需求还是不太明确。为什么非要在global用reply? 在client的function里处理不行吗?

发表于 2016-6-19 23:42 来自手机 |显示全部楼层
此文章由 DBOY123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DBOY123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
MR.Q 发表于 2016-6-19 20:44
var foo;
client.get("missingkey", function(err, reply) {
    // reply is null when the key is miss ...

这个试过啊,一直是undefined. 看网说引用异步要引用function,不是值。就是不知道怎么引用function.
[color=Red

发表于 2016-6-20 09:23 |显示全部楼层
此文章由 MR.Q 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 MR.Q 所有!转贴必须注明作者、出处和本声明,并保持内容完整
var foo  = function(reply) {
    console.log(reply);
   //这里处理你的业务逻辑
};
client.get("missingkey", function(err, reply) {
    // reply is null when the key is missing
    console.log(reply);
    foo(reply);
});

发表于 2016-6-21 14:15 |显示全部楼层
此文章由 sonybp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sonybp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在这些js的框架把function都做成一次性的。十几年前写js的function都是独立的,就像写java的method一样即可。
Advertisement
Advertisement

发表于 2016-7-20 11:22 |显示全部楼层
此文章由 LifesoCool 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 LifesoCool 所有!转贴必须注明作者、出处和本声明,并保持内容完整
直接PROMISE啊,.then

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部