Javascript NodeJS-在返回值之前等待响应

Javascript NodeJS-在返回值之前等待响应,javascript,node.js,rest,Javascript,Node.js,Rest,这应该是个简单的问题,但我找不到解决办法 我正在使用一个异步消息传递机器人。对于这个用例,bot对一个事件做出反应,在该事件中它调用一个Restful API并用一个url进行响应。这是message.reply函数调用 message.reply(getUrl()) getUrl实现如下所示: let url request.get('http://thecatapi.com/api/images/get?format=src&type=jpg', function () {

这应该是个简单的问题,但我找不到解决办法

我正在使用一个异步消息传递机器人。对于这个用例,bot对一个事件做出反应,在该事件中它调用一个Restful API并用一个url进行响应。这是message.reply函数调用

message.reply(getUrl())
getUrl实现如下所示:

let url
request.get('http://thecatapi.com/api/images/get?format=src&type=jpg', 
function () {
  url = this.href
})
return url

显然,将发生的情况是getUrl()函数调用最初将返回undefined,因为它没有等待请求完成。。但这就是问题所在-我无法确定如何让它在返回值之前等待请求完成。

更新-我确定需要将getUrl()函数的实现更改为如下:

getUrl(callback)
request.get('http://thecatapi.com/api/images/get?format=src&type=jpg', 
function () {
  callback(this.href)
})

希望这对别人有帮助

异步!而不是
message.reply(getUrl())
您想思考
getUrl(message.reply)
这两个答案都不适用,因为
message.reply
需要一个参数,特别是
getUrl()
的返回值。例如,像
getUrl(message.reply)
那样调用它,因为没有参数传递给
message.reply