Suppongo che non definirai effettivamente la funzione Promise
nella tua API; Ad esempio, utilizzerai l'implementazione già definita in JavaScript.
Dicendo che MDN afferma che
The Promise object is used for asynchronous computations. A Promise represents a value which may be available now, or in the future, or never.
...
A pending promise can either be fulfilled with a value, or rejected with a reason (error). When either of these options happen, the associated handlers queued up by a promise's then method are called.
Qui possiamo vedere che una promessa viene principalmente interagita con il suo metodo allora , così come per decidere quale implementazione scegliere non importa fino a quando l'adempimento / rifiuto può essere ottenuto.
I am thinking that I cannot really reuse a promise once it has been resolved so if I wanted to do a reload of the data I would need to re-execute the executor function.
Il valore di una promessa è una cosa ancora da determinare, ma quando è possibile accedervi come qualsiasi altra variabile. da MDN Promise.resolve()
The Promise.resolve(value) method returns a Promise object that is resolved with the given value. If the value is a thenable (i.e. has a "then" method), the returned promise will "follow" that thenable, adopting its eventual state; otherwise the returned promise will be fulfilled with the value.
Quindi, ad esempio,
var thisPromise = somePromise();
//fulfilled or rejected
thisPromise.then(function(value) {
console.log("this is the value: "+value);
}).catch(function(reason) {
console.log("was rejected with reason: "+reason);
});
//... some code later assuming you don't change thisPromise
thisPromise.then(function(value) {
console.log("this is the same value as before: "+value);
}).catch(function(reason) {
console.log("was rejected with reason: "+reason);
});
Se ricarichi i dati, intendi che i dati recuperati dalla promessa devono essere aggiornati, quindi sì, sarà necessario rieseguire i dati per recuperare nuovi dati.