无法在 then 方法中调用函数

我试图在另一个函数中调用两个函数


公共服务组件


function AddEmail(user) {

    return auth.createUserWithEmailAndPassword(user.email,user.password);    

    //createUsers(user) this way of calling is working, but i don't want to invoke like this...

}


function createUsers(user) {

    return db.collection("users").add({

        firstName: user.firstName,

        lastName:  user.lastName,

        address:  user.address,

        phoneNumber:  user.phoneNumber,

        email:  user.email,

        role:  user.role,

    });

}

注册组件


submits(e) { 

    e.preventDefault();

    const { user} = this.state;

        

    commonService.AddEmail(user)

    .then(() => {

        commonService.createUsers(user)

        .then(() =>{//success})

        .catch(err=> console.log(err));

    })

    .catch(err=> console.log(err));

}

被AddEmail执行,但不被执行createUsers。我也尝试通过then方法返回和链接,但仍然无法正常工作,我错过了什么?


不负相思意
浏览 175回答 3
3回答

慕盖茨4494581

尝试以下操作async / await。async submit(e){    e.preventDefault();    const { user} = this.state;    try {        const userEmailAdded = await commonService.AddEmail(user);        const userCreated = await commonService.createUsers(user);    } catch (err) {        console.log(err);    }}确保在两个函数调用中都返回一个承诺。如果返回值不是 promise,则使用以下代码将其包装在 promise 中function AddEmail(user) {    return new Promise((resolve, reject){        const createdUser = auth.createUserWithEmailAndPassword(user.email,user.password);        if(createdUser)            return resolve(createdUser);        else            return reject("Error in creating user.");    })}检查控制台中是否有任何错误。如果没有,则两个调用都通过。

回首忆惘然

尝试使用此代码。submits(e) {     e.preventDefault();    const { user} = this.state;            commonService.AddEmail(user)    .then(() => commonService.createUsers(user))    .then(() =>{//success})    .catch(err=> console.log(err));}

白猪掌柜的

return auth.createUserWithEmailAndPassword(user.email,user.password);返回函数必须是使用.then的 javascript Promise。您可以尝试console.log(auth.createUserWithEmailAndPassword)它是否是 Promise。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript