2015-10-19 18 views
-1

我目前正在使用https://www.npmjs.com/package/vgd这似乎工作正常......但只会工作,如果我登录到控制台,我试图让它的链接缩短返回到警报。是console.log唯一的选择api的返回与内容

比如我想使用:

vgd.shorten('http://google.com', function(res) { 
this.reply(res); //Should reply a shorteneed version of google.com but gives me an error instead. 
}); 

但是当我使用上面的代码它不工作,而另一方面:当我使用:

vgd.shorten('http://google.com', function(res) { 
console.log(res); 
}); 

它的工作。

它为什么这样做?我该如何解决它?

错误:

data: index.js:8934 -  at /home/ubuntu/workspace/UU/commands/base-uu.js:25:9 
data: index.js:8934 -  at Request._callback (/home/ubuntu/workspace/UU/node_modules/vgd/index.js:6:3) 
data: index.js:8934 -  at Request.self.callback (/home/ubuntu/workspace/UU/node_modules/vgd/node_modules/request/request.js:198:22) 
data: index.js:8934 -  at Request.emit (events.js:110:17) 
data: index.js:8934 -  at Request.<anonymous> (/home/ubuntu/workspace/UU/node_modules/vgd/node_modules/request/request.js:1082:10) 
data: index.js:8934 -  at Request.emit (events.js:129:20) 
data: index.js:8934 -  at IncomingMessage.<anonymous> (/home/ubuntu/workspace/UU/node_modules/vgd/node_modules/request/request.js:1009:12) 
data: index.js:8934 -  at IncomingMessage.emit (events.js:129:20) 
data: index.js:8934 -  at _stream_readable.js:908:16 
data: index.js:8934 -  at process._tickCallback (node.js:355:11) 
+0

你会得到什么错误?你说的话没有意义;这不是什么东西的作品。不工作的代码*真的*看起来像什么? “ – Pointy

+0

”给我一个错误“!你有没有试过阅读错误?这通常是一个开始的好地方。 – Tom

+1

PROTIP:在说出“给我一个错误”时,包含* entire *(和* exact *)错误信息。 –

回答

3

当你是一个回调里面的this值发生了变化。您需要首先将this复制到变量。

var that = this; 
vgd.shorten('http://google.com', function(res) { 
    that.reply(res); 
}); 
+0

这工作,谢谢。 – RangeLuke