অ্যাওয়েট হ'ল 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.