Typoskript Rückgabe boolean nach dem Versprechen gelöst
Ich versuche es ein boolean zurückgibt, nachdem ein Versprechen löst aber Typoskript gibt eine Fehlermeldung
A 'get' accessor must return a value.
mein code aussieht.
get tokenValid(): boolean {
//Check if current time is past access token's expiration
this.storage.get('expires_at').then((expiresAt) => {
return Date.now() < expiresAt;
}).catch((err) => { return false });
}
Dieser code ist für Ionic-3-Anwendung und die Lagerung der Ionischen Speicher-Instanz.
Du kannst das nicht tun... können Sie die Rückgabe einem
Und sollten Sie wahrscheinlich nicht verwenden Sie eine get-Methode für eine Sache, die hat Nebenwirkungen.
Ja, das ist eine genauere Beschreibung. Ich verwendete "side-Effekt", weil a) die Zeit wird oft als ein b) wir ja nicht wissen, was eine Abfrage tut (und "senden einer Anforderung" könnte eine Aktion, die mutiert, die alle Arten von Zeug, zumindest auf den unteren Ebenen).
Nein, wenn es asynchrone es wieder ein Versprechen für die boolean-Wert. Machen Sie es eine Methode, nur das auslassen der
Nein, es ist nicht möglich es synchron. Mit
Promise<boolean>
durch Rückgabe nur this.storage.get...
obwohl.Und sollten Sie wahrscheinlich nicht verwenden Sie eine get-Methode für eine Sache, die hat Nebenwirkungen.
Ja, das ist eine genauere Beschreibung. Ich verwendete "side-Effekt", weil a) die Zeit wird oft als ein b) wir ja nicht wissen, was eine Abfrage tut (und "senden einer Anforderung" könnte eine Aktion, die mutiert, die alle Arten von Zeug, zumindest auf den unteren Ebenen).
Nein, wenn es asynchrone es wieder ein Versprechen für die boolean-Wert. Machen Sie es eine Methode, nur das auslassen der
get
.Nein, es ist nicht möglich es synchron. Mit
async
/await
syntax nur Zucker für then
ruft - es ist immer noch asynchron und gibt ein Versprechen.InformationsquelleAutor user2473015 | 2017-08-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Rückgabe einem
Promise
, der aufgelöst wird, zu einem booleschen so:Den code in deiner Frage nur zwei return-Anweisungen: eine durch das Versprechen der
then
hf und eine in seinercatch
handler. Wir Hinzugefügt ein drittes return-Anweisung innerhalb dertokenValid()
- accessor, da die Methode muss etwas zurückgeben zu können.Hier ist ein funktionierendes Beispiel in der TypeScript playground:
Ich fürchte, ich weiß nicht, welche zusätzlichen Informationen zu liefern, die in dieser Antwort.
InformationsquelleAutor Shaun Luttin
Ihre Funktion sollte sein:
InformationsquelleAutor Mankeomorakort