console.log 是 api 的唯一选项吗 return 有内容

Is console.log the only option for api's that return with content

我目前正在使用 https://www.npmjs.com/package/vgd,它似乎工作正常...但只有当我登录到控制台时才会工作,并且我正在尝试使 link 缩短 return 到警报。

例如我想使用:

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)

当您处于回调中时,this 的值已更改。您需要先将 this 复制到一个变量中。

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