Actualmente mi función se ve así:
const checkDynamoID = (dynamoClient, tableName) => { function runCheck(client, params, id) { return new Promise(resolve => { client.getItem(params, function(err, data) { if (err) { console.log("Error", err); } else { if (data.Item === undefined) { console.log("Key available: " + id) resolve(id) } else { console.log("Key taken: " + id) } } }); }); } for (let i = 0; i < 10; i++) { const randomID = this.generateRandomBase64URL() const dynamoParams = { TableName: tableName, //TABLE_NAME Key: { 'videoID': { S: randomID }, } } const res = runCheck(dynamoClient, dynamoParams, randomID).then((result) => { console.log("Result: " + result) if (typeof result !== 'undefined') { console.log("Result: " + result) return result } }) } return "" } Mi objetivo es ejecutar runCheck , que realiza llamadas asíncronas a un DynamoDB para verificar una ID, en un bucle for hasta que devuelve una ID válida. Después de eso, me gustaría volver o salir del bucle for externo que encierra la llamada y volver desde checkDynamoID . Sin embargo, no estoy seguro de cómo hacer esto; Intenté ejecutar esto y no regresa, incluso después de generar un valor válido (es decir, typeof result !== 'undefined' ).
¿Hay alguna forma de hacer esto?