অ্যাওয়েট হ'ল async ফাংশনের ভিতরে একটি সংরক্ষিত শব্দ ত্রুটি


91

আমি নিম্নলিখিত বাক্য গঠন সহ সমস্যাটি বের করার জন্য সংগ্রাম করছি:

export const sendVerificationEmail = async () =>
  (dispatch) => {
    try {
      dispatch({ type: EMAIL_FETCHING, payload: true });
      await Auth.sendEmailVerification();
      dispatch({ type: EMAIL_FETCHING, payload: false }))
    } catch (error) {
      dispatch({ type: EMAIL_FETCHING, payload: false });
      throw new Error(error);
    }
  };

আমি বলতে ত্রুটি পেতে থাকি:

অপেক্ষা একটি সংরক্ষিত শব্দ

... তবে এটি একটি অ্যাসিঙ্ক ফাংশনটির মধ্যে আইনী নয়?

প্রতিক্রিয়া বিট প্রতিক্রিয়া-থান লাইব্রেরি থেকে আসছে ।


6
এটি কোনও অ্যাসিঙ্ক ফাংশনের ভিতরে নয়। এটি ফাংশনটির সাথে শুরু হয় যা শুরু হয় (dispatch) => এবং এটি অ্যাসিঙ্ক নয়। আপনার কাছে sendVerificationEmailকিছু পদক্ষেপ না নেওয়ার পরিবর্তে কেন অন্য কাজ করতে হবে?
জেএলআরিশ

4
@ জেএলআর রিশ, আপনার অবশ্যই এটি হওয়া দরকার async (dispatch) =>যে উত্তর হিসাবে আমাকে প্রেরণে অ্যাক্সেস পাওয়ার জন্য এটি ফিরিয়ে দিতে হবে
ইলজা

উত্তর:


152

ব্যবহার করার জন্য await, সরাসরি এটি বন্ধ করে ফাংশনটি অ্যাসিঙ্ক করা দরকার। আপনার মন্তব্য অনুসারে, asyncঅভ্যন্তরীণ ফাংশনে যুক্ত করা আপনার সমস্যাটিকে ঠিক করে দেয়, তাই আমি এখানে পোস্ট করব:

export const sendVerificationEmail = async () =>
  async (dispatch) => {
    try {
      dispatch({ type: EMAIL_FETCHING, payload: true });
      await Auth.sendEmailVerification();
      dispatch({ type: EMAIL_FETCHING, payload: false }))
    } catch (error) {
      dispatch({ type: EMAIL_FETCHING, payload: false });
      throw new Error(error);
    }
  };

সম্ভবত, আপনি asyncবাইরের ফাংশনটি থেকে অপসারণ করতে পারেন কারণ এতে কোনও অ্যাসিক্রোনাস অপারেশন নেই, তবে এটির আহ্বানকারী কোনও প্রতিশ্রুতি ফেরানোর sendVerificationEmailপ্রত্যাশা করছেন কিনা তা নির্ভর করে sendVerificationEmail


8
প্রকৃতপক্ষে বাহ্যিক অ্যাসিঙ্কের প্রয়োজন নেই
ইলজা

4
আহ! ধন্যবাদ! আমার কাছে একই সমস্যা ছিল প্রতিটি ... নিষ্ঠুর :)
নিক স্টিলের মধ্যে

ফিটএচ এবং তারপরে একটি অ্যাসিঙ্ক ফাংশনে এম্বেড এম্বেড থাকা জন্য এখানে ডিট্টো
Opus1217
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.