如何实现回调返回错误消息?
来自AuthService类的登录功能:
static void login(String email, String password) async {
try {
await FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: password);
} catch (e) {
print(e);
}
}
从登录类提交功能:
_submit() {
// If fail to login then return the error message
AuthService.login(_email, _password);
}
答案 0 :(得分:0)
尝试以下操作:
void printNumber(int nbr)
{
printf("%d\n", nbr);
}
void myFunction(void (*f)(*int)) //pseudocode
{
for(int i = 0; i < 5; i++)
{
(*f)(*int); //pseudocode
}
}
int main(void)
{
myFunction(printNumber(5)); //pseudocode
return (0);
}
然后您可以像这样调用方法:
Future<AuthResult> login(String email, String password) async {
try {
Future<AuthResult> result = await FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: password);
return result;
} catch (e) {
print(e);
}
}
方法_submit() {
// If fail to login then return the error message
login(_email, _password).then((result) => {
print(result);
});
}
返回signInWithEmailAndPassword
,因此将其分配给该类型,关键字Future<AuthResult>
将等待该方法完成执行,然后返回类型{{1 }}。
Future表示异步操作的结果,并且可以具有两种状态:未完成或已完成。
调用方法await
时,可以添加Future<AuthResult>
方法,该方法注册将来完成时要调用的回调。
当此后继值完成时,将使用该值调用onValue回调。
https://api.dartlang.org/stable/2.7.0/dart-async/Future/then.html
答案 1 :(得分:0)
function addItem({ item, listId }) {
return MongoService.connect()
.then(db => {
const collection = db.collection('lists');
// The update query below would return a promise
return collection.updateOne({
{ _id: new ObjectID(listId) }
}, { '$push': { items: item } })
})
.then(result => { // Anything you want to do with the result })
}
返回用户信息,您不确定需要回调吗?
label = "{}: {:.2f}%".format(CLASSES[idx], confidence * 100)
cv2.rectangle(frame, (startX, startY), (endX, endY), COLORS[idx], 2)
y = startY - 15 if startY - 15 > 15 else startY + 15
cv2.putText(frame, label, (startX, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, COLORS[idx], 2)
#print (label + "\n")
print(label)