应该是一个简单的问题,但我无法找到解决方案。
我正在使用异步消息传递机器人。对于这个用例,机器人正在响应一个事件,它调用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,因为它没有等待请求完成..但那就是问题 - 我无法弄清楚如何让它等待在返回值之前完成的请求。
答案 0 :(得分:0)
更新 - 我想我需要将getUrl()函数的实现更改为:
SELECT U.ID AS USERID
,COUNT(R.ID) AS TOTAL
,SUM(CASE
WHEN R.[STATUS] = N'COMPLETED'
THEN 1
END) AS [COMPLETED]
,CASE
WHEN R.[STATUS] <> N'COMPLETED'
THEN [STATUS]
END AS [ACTIVE STATUS]
,CASE
WHEN R.[STATUS] = N'COMPLETED'
THEN DATEDIFF(SECOND, CREATEDAT, COMPLETEDAT)
END AS [AVG PROCESSING TIME]
FROM USERS U
LEFT JOIN REQUESTS R ON U.ID = R.USERID
WHERE TIMESTAMP > @DATEFROM
希望这有助于某人!