- 31
- 0
- CPU
- Intel Pentium 4
- Scheda Madre
- ASUS Oxford
- HDD
- 150 GB
- RAM
- DDR 1,50 GB
- GPU
- GeForce 6200
- Monitor
- Benq T720
- OS
- Windows 7 Ultimate 32 bit SP1
Buongiorno,
spiego la mia situazione. Devo reperire dei dati che devo inserire in un DB. Dopodichè i dati appena inseriti li devo elaborare.
Nel primo then estraggo le informazioni che mi servono e le ritorno sottoforma di object. Nel secondo then comincio a lavorare sul DB. Col ciclo for lavoro per ogni elemento di info2. La funzione asincrona inserireDati mi inserisce correttamente ogni elemento dell'object. Il problema si presenta con la funzione asincrona aggiornareDati. In questo caso mi aggiorna, per tutti gli elementi, solo l'ultimo elemento, come se la variabile x del ciclo for fosse già all'ultimo elemento a partire già dal primo.
Non ho molta dimestichezza con sincrono e asincrono, però intuisco che, essendo il ciclo for sincrono, viene elaborato prima dell'asincrono e questo dà un risultato diverso da quello aspettato. Il problema è che, non avendo appunto delle basi sull'asincrono, non so come risolvere questo nodo. E' necessario un ciclo for in modalità asincrona?
spiego la mia situazione. Devo reperire dei dati che devo inserire in un DB. Dopodichè i dati appena inseriti li devo elaborare.
Codice:
estrarreInfo()
.then(info => {
...
return info;
})
.then(info2 => {
var nrDati = info2.length;
var player = '';
for(var x = 0; x < nrDati; x++) {
player = info2[x];
inserireDati(player)
.then(() => {
aggiornareDati(player);
})
.catch(err => console.log(err));
};
})
.catch(err => console.log(err));
Nel primo then estraggo le informazioni che mi servono e le ritorno sottoforma di object. Nel secondo then comincio a lavorare sul DB. Col ciclo for lavoro per ogni elemento di info2. La funzione asincrona inserireDati mi inserisce correttamente ogni elemento dell'object. Il problema si presenta con la funzione asincrona aggiornareDati. In questo caso mi aggiorna, per tutti gli elementi, solo l'ultimo elemento, come se la variabile x del ciclo for fosse già all'ultimo elemento a partire già dal primo.
Non ho molta dimestichezza con sincrono e asincrono, però intuisco che, essendo il ciclo for sincrono, viene elaborato prima dell'asincrono e questo dà un risultato diverso da quello aspettato. Il problema è che, non avendo appunto delle basi sull'asincrono, non so come risolvere questo nodo. E' necessario un ciclo for in modalità asincrona?