Ciò che è difficile da capire è che si potrebbe pensare che se la Promessa non è ancora piena, allora forse se aspetto un po 'posso testare di nuovo per vedere se ormai ha un valore. Ma questo non è possibile perché come spiegato in MDN:
"Le chiamate non saranno mai chiamate prima del completamento della corsa corrente del ciclo di eventi di JavaScript."
Finché la funzione attualmente avviata è in esecuzione, la Promessa non può essere piena. Non ha "valore" durante l'esecuzione corrente del ciclo degli eventi. "Promessa" significa "Prometto di dartelo durante l'esecuzione del ciclo di eventi NEXT".
È possibile salvare tale promessa su una variabile globale e quindi quando un utente fa clic su un pulsante nel browser inizia un nuovo ciclo di eventi eseguendo il gestore di eventi che può mettere un altro "quando()" sulla promessa tale che se la promessa viene risolta entro quel tempo, la nuova funzione quando prende il valore ottiene come argomento e la salva in una variabile dalla quale è possibile leggerla. Non c'è bisogno di scriverlo per console, per vedere che è lì.
Questa per me è stata la parte difficile, ho pensato di sì sicuro di poter scrivere Promessa sulla console, ma non riesco a leggere dalla console, quindi come posso ottenere quel valore nel resto del mio programma? Risposta: aspetta che l'attuale ciclo di eventi sia terminato, quindi puoi.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
fonte
2017-08-10 20:11:02
Grazie! Ho seguito il tuo consiglio e ho assegnato la variabile scope alla funzione 'then'. Tutto funziona liscio da lì. Ma sono curioso di sapere se ci sono casi specifici in cui ha senso legarsi direttamente a una promessa ... poiché l'angolare fornisce questa funzionalità. – sthomps
Non sono a conoscenza di casi simili; Penso che la funzionalità sia offerta principalmente per comodità. Ma forse qualcun altro ha un'opinione ... –
Non è sempre utile dare la risposta "non vuoi farlo". Nel mio caso, io sicuramente lo voglio fare perché sto facendo il debug e non ho idea di come ottenere il valore della promessa. Deve essere sicuramente possibile in qualche modo. – Machisuji