2012-04-06 16 views
6

È possibile effettuare la registrazione alla console sincrona? Spesso mi imbatto in situazioni in cui l'esecuzione del codice è più veloce di scaricare le strutture. Ciò si risolve nell'esprimere gli oggetti già modificati.Registrazione console sincrona in Chrome

Sono sicuro di poter leggere il codice con il debugger, effettuare test di unità, ecc., È solo spesso conveniente semplicemente fare roba console.log solo per dare un'idea generale di cosa sta succedendo.

risposta

10

Si potrebbe creare una copia dell'oggetto prima di passarlo a console.log. Guarda here per una funzione per creare una copia profonda del tuo oggetto.

Edit:

implementato in Chrome, vedere here

+0

Va bene, grazie, sembra fattibile. Anche se preferirei in qualche modo sovrascrivere la console originale di dumping in modo che blocchi piuttosto che asincrona. –

+0

Il problema è che l'oggetto viene passato alla console per riferimento, se in seguito si modifica l'oggetto anche l'output nella console cambia. – Fox32

+0

Oh, capisco ... ho pensato che fosse una foto istantanea. In tal caso la clonazione dell'oggetto sembra essere l'unica soluzione. Grazie ancora. –

2

Inserire un punto di interruzione (vedere l'immagine di seguito) nell'istruzione console.log e utilizzare i controlli per passare a successivo.

enter image description here

+0

Grazie, ma so che posso percorrere il codice con il debugger. L'ho anche dichiarato nella domanda originale. –

7

ho appena fatta prendere da questo comportamento, ha trascorso alcune ore fino a quando ho capito la console è borked, non è il mio codice. Dannazione.

Fino ad ora sono riuscito solo per ottenere un comportamento previsto con:

console.log(JSON.stringify(obj)) 

piacevole effetto collaterale è, si espande gli oggetti come {0: "A", 3: "b"}

+0

Oh, questo in realtà risolve tutto molto bene. Grazie per quello :) –

Problemi correlati