Estoy tratando de usar la promesa todo resuelto y realizo el registro de la consola dentro de la función que da el resultado correcto. Después de devolver esta salida de promise.allsettled y mientras afirmo esto, se muestra indefinido. ¿Podría ayudarme a identificar el problema?
Tenga en cuenta que developerArr es un elemento de matriz. código () - el código es otra función que resuelve la promesa que devuelve una cadena
`console.log("promise all settled ", output, typeof(output))` shows ***promise all settled console.log("Hello, Nicole!") System.out.println("Hello, John!") print("Hello, Pete!") string*** export default function hackathon(developerArr) { //let strMsg = "" let output = [] let promises = [] let i = 0 developerArr.forEach(element => { promises[i] = new Promise((resolve) => { resolve(element.code()) }) i ++ }) Promise.allSettled(promises).then((results) => { results.forEach((result) => { if (result.value) { output.push(result.value) }else if (result.reason) { output.push(result.reason) } }) output = output.join('\n') console.log("promise all settled ", output, typeof(output)) return output.toString() }) } it('should resolve with an error message for an unknown language', async () => { const output = await hackathon([ ...developers, new Developer({ name: 'Adam', language: 'abap' }) ]) var str = [ 'console.log("Hello, Nicole!")', 'System.out.println("Hello, John!")', 'print("Hello, Pete!")', 'Unsupported language: abap' ].join('\n') console.log(str, typeof(str)) console.log("output from hack test.js",output, typeof(output)) assert.equal(output, [ 'console.log("Hello, Nicole!")', 'System.out.println("Hello, John!")', 'print("Hello, Pete!")', 'Unsupported language: abap' ].join('\n')) }) }) `console.log("output from hack test.js",output, typeof(output))` shows ***output from hack test.js undefined undefined***