为了账号安全,请及时绑定邮箱和手机立即绑定

在onSubmit中发起呼叫

在onSubmit中发起呼叫

小怪兽爱吃肉 2021-03-31 21:14:21
我是新来的asynch,我想用asynch用firebase,一旦标记设置我想射击的动作,fetchEvents和navigateasync setToken() {    const fcmToken = await firebase.messaging().getToken();    return fcmToken;}onSubmit(e) {    const {        navigation: { navigate },        credentials: { year, group, student },        fetchEvents    } = this.props;    AsyncStorage.setItem(        "loggedIn",        JSON.stringify(this.props.credentials)    );    const token = this.setToken();    if (token) {        fetchEvents(student || group);        navigate("Month");    }}如果我token在调试器中进行检查,那是一个承诺:_40: 0_55: null_65: 0_72: null如何asynch使用我的功能?
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

每个async函数都返回Promise。就那么简单。


async setToken() {

    const fcmToken = await firebase.messaging().getToken();

    // Now if you console.log() the fcmToken will be string


    return fcmToken;

}


console.log(setToken()) 

// This will be promise and inside will be fcmToken, 

// because anything you return from async function will be wrapped in Promise.


查看完整回答
反对 回复 2021-04-08
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您还需要对await函数进行调用:


async onSubmit(e) {    //  <-- add "async" here

    const {

        navigation: { navigate },

        credentials: { year, group, student },

        fetchEvents

    } = this.props;


    // for that matter, this here being called "AsyncStorage" suggests 

    // that you *might* want to await this too.

    AsyncStorage.setItem(

        "loggedIn",

        JSON.stringify(this.props.credentials)

    );


    const token = await this.setToken();  //  <-- add "await" here


    if (token) {

        fetchEvents(student || group);

        navigate("Month");

    }

}


查看完整回答
反对 回复 2021-04-08
  • 2 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信