Javascript NodeJS-在返回值之前等待响应
这应该是个简单的问题,但我找不到解决办法 我正在使用一个异步消息传递机器人。对于这个用例,bot对一个事件做出反应,在该事件中它调用一个Restful API并用一个url进行响应。这是message.reply函数调用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 () {
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