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

时间:2017-05-21 21:23:51

标签: javascript node.js rest

应该是一个简单的问题,但我无法找到解决方案。

我正在使用异步消息传递机器人。对于这个用例,机器人正在响应一个事件,它调用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,因为它没有等待请​​求完成..但那就是问题 - 我无法弄清楚如何让它等待在返回值之前完成的请求。

1 个答案:

答案 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

希望这有助于某人!