新足迹

 找回密码
 注册

精华好帖回顾

· “会计专业”如何找工作,及Industry工作中问题解惑 --- 长期咨询帖 (2009-3-26) SkyLine · 《香港大澳昂坪半日游》2010.12 (2010-12-28) joycesun
· Australia day游记 -- 新上了片片 (2005-1-27) chris2002 · 简易葡式蛋挞 (2007-8-16) jintangtang
Advertisement
Advertisement
查看: 4562|回复: 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
返回顶部