首页 > 解决方案 > 为什么我不能等待对 LambdaHelper.callAsync 的调用?

问题描述

我正在后端使用 node.js 开发一个 vue.js 应用程序。后端也由 AWS 上的 lambda 服务器托管。

在后端,我正在尝试执行以下操作:

    let success = false;
    let lh = new LambdaHelper();
    success = await lh.callAsync('MyController', 'myMethod', params);

这会调用 MyController.myMethod(params)。但它不等待。

如果我在调用 lh.callAsync(...) 后立即放置一个控制台日志并打印出成功的值,它会打印出未定义的。如果我在 myMethod 中放置一些控制台日志,它会在打印出成功的值后将它们打印出来。这意味着它没有等待对 lh.callAsync(...) 的调用。

现在,如果我将最后一行替换为...

    success = await require('MyController').myMethod(params)

...它工作得很好(即它等待 myMethod(...) 并在打印 myMethod(...) 中的控制台日志后打印成功的值(true 或 false))。

等待通过 LambdaHelper.callAsync(...) 调用方法有什么特殊技巧吗?谢谢。

标签: aws-lambdaasync-await

解决方案


推荐阅读