2015-10-19 16 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