Вы решаете Обещание, прежде чем нажать return
. Можете ли вы попробовать resolve
Promise
со значениями, которые нужно вернуть? Затем он будет go блокировать onDone с этими значениями. Кроме того, наличие блоков try
и catch
здесь избыточно, поскольку service
в xstate
автоматически выполнит это за вас.
Просто верните обещание в операторе вызова службы, потому что оно должно быть функция, которая возвращает Promise
function initiate(context: any) {
console.log('DbDynamoImpl ::: insert ::: start :::');
let params: PutItemInput = {
TableName: 'test',
Item: context,
};
return new DynamoDB.DocumentClient().put(params).promise();
}
Тогда в вашем onDone
блоке вы можете console.log('DbDynamoImpl ::: insert ::: response :::', response);
onDone: {
target: 'success',
actions: (ctx, e) => console.log('DbDynamoImpl ::: insert ::: response :::', e),
}