第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 2 個(gè) Javascript 函數(shù)合二為一?

如何將 2 個(gè) Javascript 函數(shù)合二為一?

我有以下函數(shù),我想將其重新用作“動(dòng)作”模板,并將另一個(gè)函數(shù)作為參數(shù)傳遞,這將是動(dòng)作函數(shù),在其中執(zhí)行。問(wèn)題是否可以?我該怎么做?請(qǐng)注意,“動(dòng)作”是異步的,而且我正在使用 React。  function templateAction(action) {    try {      setLoading(true);      setError(null);      // DO SOMETHING      action();      setLoading(false);    }    catch(err) {      console.log(err);      setError(err);      setLoading(false);    }  }在該action()調(diào)用中應(yīng)該執(zhí)行以下函數(shù):  async function getBlogPost() {    const querySnapshot = await firebase.firestore().collection('blog').where('slug','==',props.match.params.slug).get();      console.log(querySnapshot.docs);      if (querySnapshot.docs.length === 0) {        throw 'ERROR: BlogPost not found...';      } else if (querySnapshot.docs.length > 1) {        throw 'ERROR: More than 1 blogPost found...';      }      const blogPostData = querySnapshot.docs[0].data();      setFirestoreID(querySnapshot.docs[0].id);      setBlogPost(blogPostData);  }
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是我的最終代碼,使用 try catch 塊捕獲錯(cuò)誤。


它有效,但我認(rèn)為它損害了可讀性。


async function templateAction(action) {

  try {

    console.log('Template Action BEFORE calling action');

    await action();

    console.log('Template Action AFTER calling action');

  }

  catch(err) {

    console.log('I was caught and logged');

    console.log(err);

  }

}


function action() {

  return new Promise(async (resolve,reject) => {

    try {

      console.log('I am sync from action function BEFORE async call');

      await mockAPI();

      console.log('I am sync from action function AFTER async call');

      resolve();

    }

    catch(err) {

      console.log('I was caught');

      reject(err);

    }

  });

}


function mockAPI() {

  return new Promise((resolve,reject) => {

    setTimeout(() => {

      console.log('I am from async mockAPI call');

      resolve();

    },1500);

  });

}


templateAction(action);


查看完整回答
反對(duì) 回復(fù) 2021-07-08
  • 2 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)