Привет, у меня есть пара рекурсивных запросов DynamodB, которые работают в Angular, проблема в том, что я хочу использовать массив данных вместо того, чтобы 10 запросов с разными именами запускали их параллелизм и объединяли их вместе. Пример
async getAllBooksSmith() {
//get all books from Publisher SmithBooks for year 2019
let startkey: any;
let params = {
TableName: 'books',
IndexName: 'bookspubindex',
KeyConditionExpression: '#key = :pbs and #sortkey = :rly',
ExpressionAttributeValues: {
':pbs': 'SmithBooks',
':rly': '2019',
},
ExpressionAttributeNames: {
'#key': 'Publisher',
'#sortkey': 'ReleaseYear'
},
ExclusiveStartKey: startkey
}
let items = [];
while (true) {
const db = await this.getDC();
const data = await (db as DocumentClient).query(params).promise();
items = items.concat(data.Items);
if (!data.LastEvaluatedKey) {
break;
}
params.ExclusiveStartKey = data.LastEvaluatedKey;
}
return items;
};
что я делаю сейчас, это создаю как 10 из этих запросов и делаю это для их одновременного выполнения, вот и пример с 3, чтобы его было легче читать
async getAllPublisherBooks() {
let [Smith, Lowen, Toys] = await Promise.all([this.getAllBooksSmith(), this.getAllBooksLowen(), getAllBooksToys()]);
let everyBooks = await Smith.concat(Lowen, FreeOln);
return everyBooks;
}
Надеюсь, я объяснил, что я хочу сделать с массивом, как этот arr = ['SmithBooks', 'LowenBooks', 'ToysBooks]]