Una Promessa è un tipo di oggetto che funge da segnaposto per un risultato futuro, come il corpo di una richiesta HTTP o il valore di ritorno di una chiamata al metodo Meteor. Fondamentalmente qualsiasi funzione che ti obbliga a passare un callback per ricevere il suo valore di ritorno (invece di restituirlo) è una funzione asincrona, e il valore che restituisce può essere rappresentato da una Promessa.Posso restituire un valore asincrono (una Promessa) da un helper Meteor?
Il problema in Meteor è che helper
metodi sono destinati per funzionare soltanto con valori sincroni - come il testo in una pagina web, o il contenuto di una raccolta Minimongo. Quando si restituisce una promessa da uno, l'aiutante
- mostra
[object Promise]
invece del valore deliberato - non aggiorna quando la promessa si risolve
Alcuni tentativi di risolvere questo esiste: simple:reactive-method e arsnebula:reactive-promise , ma ti richiedono di cambiare i tuoi aiutanti con un certo stile, o funzionano solo con Meteor.call
invece di limitarti semplicemente a restituire una promessa generica.
C'è qualcosa che ho trascurato, o c'è una soluzione in lavorazione? Ci sto provando da un po 'di tempo e potrei lavorare su qualcosa di me stesso se non c'è una risposta ufficiale.
Fornisci un esempio di codice di ciò che hai provato fino ad ora. –
Buona domanda. Stai cercando fondamentalmente di usare 'simple: reactive-method' con una promessa invece di un metodo, ma altrimenti è la stessa idea. –
Sì, @AndrewMao, ma ReactiveMethod non è concatenabile, non è una promessa completa .. –