这是一个简单的场景..
我想将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
如果要在promise上使用节点样式的回调,请像这样调用它们:
.then(function(result) {
callback(null, result);
}, function(error) {
callback(error);
});
一些promise库也有帮助函数,比如Bluebirds .asCallback(callback)
。
在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(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){...}