0

ist einfaches Szenario ..Wie Versprechen in Rückruf in Knoten js konvertieren? Hier

Ich mag diesen Code in Feuerbasis Dokumentation meiner api gegeben konvertieren ..

Wie kann ich konvertiere es Funktion Rückruf?

var uid = "some-uid"; 

admin.auth().createCustomToken(uid) 
    .then(function(customToken) { 
    // Send token back to client 
    }) 
    .catch(function(error) { 
     console.log("Error creating custom token:", error); 
    }); 

Hier ist der Link der Dokumentation ..

https://firebase.google.com/docs/auth/admin/create-custom-tokens 
+0

Nicht! Umarmung verspricht! – Bergi

+0

Welche Versprechen Bibliothek verwenden Sie? – Bergi

Antwort

2

Wenn Sie node- verwenden möchten Stil Callbacks auf ein Versprechen, rufen Sie sie wie folgt auf:

Einige vielversprechende Bibliotheken haben auch Hilfsfunktionen dafür, wie Bluebirds .asCallback(callback).

+0

funktionieren !! thanx :) –

+0

Wenn der Callback die Erfolgsfunktion einbringt, dann hätten Sie eine unbehandelte Ablehnung - was Sie nicht erwarten würden - Sie müssen versuchen, den Fehler zu erfassen und ihn außerhalb des versprochenen Kontextes zu werfen, wenn der Callback erfolgt warf. –

+1

@BenjaminGruenbaum Eigentlich * würde * ich * eine unbehandelte Ablehnung erwarten, wenn der Callback wirft (was es nie tun sollte), aber ja könnten wir '.catch (process.emit.bind (process," uncaughtException "))' nach dem 'hinzufügen dann " – Bergi

1

Das ist ziemlich einfach:

function(uid, cb){ 
    admin.auth().createCustomToken(uid) 
    .then(function(customToken) { 
    cb(null, customToken); 
    }) 
    .catch(function(error) { 
     console.log("Error creating custom token:", error); 
     cb(error, null); 
    }); 
} 

wo cb wie function callback(error, token){...} ist

+1

Tun Sie das nicht. Wenn 'cb' geworfen wird, wird es erneut aufgerufen. – Bergi

+0

@Bergi mit seinem eigenen Fehler und dies sollte keine Rekursion erzeugen, aber Ihre Lösung ist sauberer. – bknights

+0

Nein, keine Rekursion, aber immer noch problematisch für Rückrufe, von denen erwartet wird, dass sie nur einmal aufgerufen werden. – Bergi