Почему Dynamodb возвращает пустой объект необработанных элементов, а не неопределенный - PullRequest
0 голосов
/ 08 мая 2020

Я выполняю пакетную запись, чтобы удалить некоторые собранные элементы из таблицы Dynamodb. Поскольку я хочу удалить все, я запускаю пакетную запись, пока UnprocessedItems не определено.

if (result.Items) {
  let requestMap: DocumentClient.BatchWriteItemRequestMap = {
    [this.tableName]: result.Items.map(item => ({
      DeleteRequest: {
        Key: {
          key,
          test,
        },
      },
    })),
  };
  let hasUnprocessedItems = true;
  do {
    const retVal = await this.documentClient
      .batchWrite({
        RequestItems: requestMap,
      })
      .promise();
    if (retVal.UnprocessedItems) {
      requestMap = retVal.UnprocessedItems;
    } else {
      hasUnprocessedItems = false;
    }
  } while (hasUnprocessedItems);
}

Но когда я оцениваю состояние if (retVal.UnprocessedItems), отладчик говорит, что это объект {}. Таким образом, он никогда не попадает в ветку else, поскольку не определен. Я запускаю Dynambodb local в контейнере.

...