You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Lambda函数中获取Promise值并使用console.log打印?

问题描述

我编写了下述AWS Lambda函数,该函数返回一个Promise对象。请问如何获取该Promise的返回值,并使用console.log将其打印出来?我希望记录该Promise的值。

const https = require("https");
let url = "";

exports.handler = async function (event) {
  let rawData = "";
  const promise = new Promise(function (resolve, reject) {
    https
      .get(url, (res) => {
        res.on("data", (chunk) => {
          rawData += chunk;
        });
        res.on("end", function () {
          resolve(rawData);
        });
      })
      .on("error", (e) => {
        reject(Error(e));
      });
  });
  return promise;
};
解决方案

有两种常见方式可以获取Promise返回值并打印:

1. 在Lambda函数内部记录日志

因为你的handler已经声明为async函数,直接用await等待Promise完成,拿到结果后打印即可,同时不影响函数返回值:

const https = require("https");
let url = ""; // 记得替换为有效HTTPS地址

exports.handler = async function (event) {
  let rawData = "";
  const promise = new Promise(function (resolve, reject) {
    https
      .get(url, (res) => {
        res.on("data", (chunk) => {
          rawData += chunk;
        });
        res.on("end", function () {
          resolve(rawData);
        });
      })
      .on("error", (e) => {
        reject(Error(e));
      });
  });
  
  // 等待Promise完成并获取结果
  const result = await promise;
  // 打印到CloudWatch日志
  console.log("请求返回数据:", result);
  // 保持原返回逻辑
  return result;
};

这样Lambda执行时,日志会自动输出到AWS CloudWatch中,你可以在控制台查看。

2. 外部调用handler时打印结果

如果是本地测试或其他场景调用该handler函数,可通过两种方式处理:

使用.then()链式调用

const { handler } = require("./your-lambda-file");

// 传入模拟的event参数
handler({})
  .then(result => {
    console.log("Promise返回值:", result);
  })
  .catch(err => {
    console.error("请求失败:", err);
  });

使用async/await语法

const { handler } = require("./your-lambda-file");

async function runTest() {
  try {
    const result = await handler({});
    console.log("Promise返回值:", result);
  } catch (err) {
    console.error("请求失败:", err);
  }
}

runTest();

注意:代码中url为空字符串,实际使用时必须替换为有效的HTTPS地址,否则会触发错误回调。

内容的提问来源于stack exchange,提问作者Forbes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:40:11