Я работаю с Serverless для создания конечной точки получения REST. Намерение состоит в том, чтобы вызвать эту конечную точку и вернуть значение из запроса DynamoDB (конкретный тег body
). У меня проблема в том, что ответ от этой конечной точки {}
при ее вызове. Я полагаю, что это потому, что return
вызывается до того, как станут доступны данные запроса.
Однако при выполнении запроса я использую ключевое слово await
, поэтому я предполагаю, что получу реальные данные, а не обещание.
Вот мой код:
import { APIGatewayProxyHandler } from 'aws-lambda';
const AWS = require('aws-sdk');
var dynamoDB = new AWS.DynamoDB.DocumentClient();
export const getorder: APIGatewayProxyHandler = async (event, _context) => {
var orderRefId = +event.queryStringParameters.orderRefId;
var params = {
TableName: 'MYTABLENAME',
KeyConditionExpression: 'orderRefId = :orderRefId',
ExpressionAttributeValues:{
':orderRefId': orderRefId
}
}
let result = await dynamoDB.query(params).promise();
return {
statusCode: 200,
body: JSON.stringify({
order: result.Items[0].body
})
};
}
Есть мысли о том, почему return
стреляет до того, как у result
есть данные?