۶ میلیون تومن هدیه🎁 + کلی آفر جذاب در کمپین تابستون🔥 تابستون کوتاهه پس بزن بریم 👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمد حسین
syntax result
جامعه جاوا اسکریپت ایجاد شده در ۲۷ شهریور ۱۴۰۲

سلام 

وقت بخیر

چرا تابع test3 رد در اخر اجرا میکنه ؟


      "strict mode";
      async function test() {
        console.log(" 1th TETX in asynch funchotion");
        await test2(17, 7);
        test3("TEST");
      }
      function test2(a, b) {
        return console.log(a - b);
      }
      function test3(params) {
        console.log(params);
      }
      function test4() {
        console.log("FINISH");
      }
      test().then(test4());
   

سلام و عرض ادب، امیدوارم حالتون خوب باشه.

آقا محمد، متد then در Javascript دو ورودی داره، که هر دو یک callback funciton هستند، ورودی اول در صورت موفقیت آمیز بودن promise و ورودی دوم در صورت عدم موفقیت promise اجرا خواهند شد.

شما اگر نتیجه زیر رو بخواید بگیرید:

1th TEXT in async function 
10
TEST
FINISH

باید کدتون رو به شکل زیر تغییر بدید:

test().then(() => test4());

زمانی که به شکل یک callback function به متد then مقدارتون رو پاس میدید، بعد از موفقیت امیز بودن درخواست این callback function کال میشه، ولی به شکلی که شما مشخص کردید، بلافاصله test4 کال میشه و چنین نتیجه ای رو خواهد داشت.

Masoud Harooni ۰۳ شهریور ۱۴۰۳، ۱۸:۳۵