这是一个简单的场景..
我想将firebase文档中给出的这些代码转换为我的api ..
如何将其转换为回调函数?
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 :(得分:9)
如果要在promise上使用节点式回调,请按以下方式调用它们:
.then(function(result) {
callback(null, result);
}, function(error) {
callback(error);
});
一些promise库也有帮助函数,比如Bluebirds .asCallback(callback)
。
答案 1 :(得分:0)
在NodeJS> 8.2中,您有一个require('util').callbackify()
(与require('util').promisify()
相反):
const { callbackify } = require('util');
callbackify(() => admin.auth().createCustomToken(uid))((err, customToken) => {
// ...
});
或者如果您有其他地方的回叫:
const { callbackify } = require('util');
callbackify(() => promise)(callback);
请注意,它收到的函数返回一个Promise ,而不是Promise本身,并且它返回的 Function接收一个回调,但它自身不接收回调。
答案 2 :(得分:-1)
这非常简单:
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);
});
}
其中cb与function callback(error, token){...}