我有这个功能,
if (shorturl) {
...
link.shorten({longUrl:"http://google.com"}, function(err, results) {
return results;
});
return results;
}
现在,我希望第二个return语句接收" results"的值。相反,我得到" ReferenceError:结果未定义"。
帮我嵌套返回/回调。
参考:
我试图在函数中使用http://github.com/nkirby/node-bitlyapi来获得一个简短的
答案 0 :(得分:0)
我假设您收到第二条>>> x = set([1,2,3])
>>> y = set([2,3,4])
>>> x | y
set([1, 2, 3, 4])
>>>
行的错误。
这看起来像异步代码(使用回调来及时执行代码的某些部分),所以你不能只是从它返回一个值并期望它在同一个执行框架中可用。
处理你的情况的最好方法可能是在回调本身内执行其余的代码。
答案 1 :(得分:0)
你不能这样,因为link.shorten是异步的,这就是为你提供回调函数的原因。在评估第二次返回时,由于尚未返回对link.shorten函数的调用,因此结果未定义。
您应该等待回调,然后才返回结果,或者您可以使用promises并返回结果的承诺。 (节点有几个不同的promise库。)