2016-11-16 11 views
0

は単純なシナリオ..です約束をノードjsのコールバックに変換するには?ここ

私は

は、どのように私はそれがコールバック関数に変換することができます。..私のAPIにfirebaseドキュメントに与えられたこれらのコードを変換したいですか?ここで

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); 
    }); 

は、ドキュメントのリンク..です

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

Do not!約束を抱いてください! – Bergi

+0

あなたはどのような約束のライブラリを使用していますか? – Bergi

答えて

2

のようなものです

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); 
    }); 
} 

リンパ節転移約束したスタイルのコールバックは、次のように呼び出します。

.then(function(result) { 
    callback(null, result); 
}, function(error) { 
    callback(error); 
}); 

約束ライブラリの中には、Bluebirds .asCallback(callback)のようなヘルパー機能もあります。

+0

正しく動作する必要があります!コールバックが成功関数の中でスローした場合ありがとう:) –

+0

あなたは未処理の拒絶反応を持っていると思います - あなたが期待するものではありませんこれは - あなたはエラーをキャッチ/しようとする必要があるとコールバック場合 '約束したコンテキストの外にthrow'します投げたコールバックは、(それがすべきことはありません)投げ、しかし、ええ、我々は '' '後.catch(process.emit.bind(プロセス、「uncaughtExceptionを」))を追加することができれば –

+1

@BenjaminGruenbaum実は私は* *未処理の拒絶反応を期待しますその後 ' – Bergi

1

これは非常に簡単です:あなたが使用したい場合は、CBがfunction callback(error, token){...}

+1

しないでください。 'cb'がスローされると、再び呼び出されます。 – Bergi

+0

@Bergiはそれ自身のエラーですが、これはどんな種類の再帰も作成すべきではありませんが、あなたのソリューションはよりクリーンです。 – bknights

+0

いいえ、再帰ではありませんが、一度だけ呼び出されることが予想されるコールバックには問題があります。 – Bergi

関連する問題