Dado el siguiente código:
var arr = ["one", "two"]
for (index in arr) {
console.log("outside promise:", arr[index])
myPromise().then(function(response) {
console.log("inside promise:", arr[index])
})
}
Mi salida:
// outside promise: one
// outside promise: two
// inside promise: one
// inside promise: one
¿Por qué el hackear la salida de la consola dentro de la promesa no "t" a través de valores?
Respuestas
0 para la respuesta № 1Como @Jaromanda X
En el comentario, la salida correcta será:
// outside promise: one
// outside promise: two
// inside promise: TWO
// inside promise: TWO
Dado que las promesas se resolverán cuando el índice ya sea 1
, no 0. Si obtiene diferentes resultados en la consola, puede ser stdout
Problemas de concurrencia. Intente agregar resultados a la matriz y luego imprímala;
const arr = ["one", "two"];
let results = [];
for (index in arr) {
results.push(`outside promise: ${arr[index]}`)
myPromise().then(function(response) {
results.push(`inside promise: ${arr[index]}`)
})
}
console.dir(results);