【发布时间】:2013-05-25 04:53:37
【问题描述】:
function one(num, callback) {
return callback(num);
};
function two(num) {
// return num + 99; << this works
setTimeout(function() { return num + 99; }, 1000); // << this doesn't
};
console.log(one(55, two));
setTimeout 内的返回结果未定义。我有点明白为什么会发生这种情况,但我不知道如何避免它。
我在 node.js 中有一些我是 requireing 的函数,我想将一个 redis 对象传递给它们以获取/设置一些数据,如果我最终使用它可能会复制这种情况某种回调。
有没有办法返回那个值?
【问题讨论】:
-
two函数是异步的,无论如何都不会返回任何内容...return num + 99;您从该匿名函数返回,这是毫无意义的 -
因为它是异步的。这就是它的工作原理。函数二立即返回,然后一秒钟后返回 num + 99 运行
标签: javascript node.js callback