OpenWhisk/Node -- 承诺未解决

OpenWhisk/Node -- Promise Is Not Resolving

我已经在本地测试了一个 reddit 机器人一段时间,并让它在本地工作。所以现在我正尝试在 OpenWhisk 上调用它。我的麻烦似乎出现的行是:

r.getInbox( {"filter":"mentions", "append":false } ).then( newMentions, console.err );

newMentions 永远不会被触发。我将其中的第一行设为 console.log,并将 newMentions 替换为 console.log。

console.logs 在此行之前和之后被调用得很好,getInbox 在我的本地机器上工作正常,在这里也应该工作得很好。我在任何地方都没有收到任何错误,即使是上一行中的 console.err。

所以我目前的猜测是我的 OpenWhisk 实例在 getInbox 可以解析之前以某种方式结束。那正确吗?我将它设置为 60s/512mb,它不会占用接近 60s 的任何地方,而且我无法想象它会占用 512mb。那么...我是否需要手动强制 OpenWhisk 等待 promise 解决?我该怎么做?还是有其他我没有看到的错误?

明确一点:我在 reddit 上使用 snoowrap。 r 是一个合适的 snoowrap 对象,而 getInbox 是一个我很确定我使用正确的 snoowrap 函数,它 returns 代表收件箱的 json 数据的承诺。再说一次,即使它是空的,仍然应该调用 newMentions,对吗?

return 对主要功能的承诺

function main(){
  return r.getInbox( {"filter":"mentions", "append":false } ).then( newMentions, console.error );
}

这样 OpenWhisk 将等待 Promise

确保你的 resolve 函数 newMentions 或 reject 函数 return 是一个 JSON 对象,它将是 Action

的结果

另外console.err不是函数是console.error