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
我已经在本地测试了一个 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