【发布时间】:2018-03-20 20:13:55
【问题描述】:
我正在尝试为 Slack 进行集成,以查询服务器并将一些结果返回给用户。搜索有时需要比 Slack 允许响应的窗口更长的时间,所以我需要立即返回状态 200。
如何使用 lambda 函数做到这一点?我尝试使用回调函数,然后将数据发送到另一个 lambda 服务,但原始函数等待它返回,这意味着我仍然被正在查询的服务器阻止。
这就是我正在使用的东西
var rp = require('request-promise');
exports.handler = (event, context, callback) =>{
//I wanted this to send back my STATUS 200 so the command wouldn't time out
callback(null, "Working...");
//I want this post to happen asynchronously so that slack gets the callback response while the search is happening
//but this still waits until the post comes back before resolving the callback
var options = {
method: 'POST',
uri: "https://url-to-other.service",
body:{
"team": event.team,
"label": event.label,
"url": event.aresponse_url
},
json:true
};
rp(options);
};
当我运行这个时,回调文本显示在另一个函数的结果之后,这意味着这个服务在返回状态之前正在等待另一个停止运行。
【问题讨论】:
标签: javascript node.js amazon-web-services aws-lambda slack-api