我尝试创建一个lambda函数以在Slack中发布消息。
const { WebClient } = require('@slack/client');
const token = '...';
const web = new WebClient(token);
const channel = '#...';
exports.handler = (event) => {
console.log('First');
web.chat.postMessage({
channel: channel,
username: '...',
icon_emoji: '...',
text: 'Hello world'
})
.then(() => {
console.log('Ok');
return {
statusCode: 200
};
})
.catch((error) => {
console.log('Error', error);
return {
statusCode: 500,
body: error
};
});
console.log('Finish');
};
我的问题:如何在then
和catch
函数中返回返回值?
实际上,lambda返回null
。 (好的,因为我还没有返回主函数)。因此,如果我的函数失败,Lambda仍会返回一个答案(200)。
也许我没有正确使用Lambda和Promise。此外,我不太了解await
之前的关键字(event) => {
。我被迫删除它,否则我的功能将无法正常工作。
答案 0 :(得分:0)
您的lambda函数将需要返回响应。 例如,如果您将响应构造为:
// cancel the unique work
instance.cancelUniqueWork(TAG);
// clear all finished or cancelled tasks from the WorkManager
instance.pruneWork();
,
const response = {
statusCode: 200,
body: JSON.stringify(somedata)
}
然后您将其作为回报somedata can be a message if you do not return any important data.
。顺便说一句,您缺少来自functions参数的回调。