亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在 then 方法中調用函數

無法在 then 方法中調用函數

不負相思意 2022-12-09 13:51:08
我試圖在另一個函數中調用兩個函數公共服務組件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方法返回和鏈接,但仍然無法正常工作,我錯過了什么?
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

嘗試以下操作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.");

    })

}


檢查控制臺中是否有任何錯誤。如果沒有,則兩個調用都通過。


查看完整回答
反對 回復 2022-12-09
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

嘗試使用此代碼。


submits(e) { 

    e.preventDefault();

    const { user} = this.state;

        

    commonService.AddEmail(user)

    .then(() => commonService.createUsers(user))

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

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

}


查看完整回答
反對 回復 2022-12-09
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

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

返回函數必須是使用.then的 javascript Promise

您可以嘗試console.log(auth.createUserWithEmailAndPassword)它是否是 Promise。


查看完整回答
反對 回復 2022-12-09
  • 3 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號