TGViewer
پاندورا کد | در تکاپوی کامپیوتر! پاندورا کد | در تکاپوی کامپیوتر! @pandora_code · 48 subscribers
Post #49 79
متد fetch چطوری کار می‌کنه؟
زمانی که ما یه ریکوئست می‌زنیم، متد fetch توی دو شاخه اجرا می‌شه:

const todo = fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())


شاخه اول:
جاوااسکریپت بلافاصله یه آبجکت می‌سازه به اسم Promise Object که مقادیر زیر رو داره:

{
value: undefined,
onFulfilled: function[],
onRejection: function[]
}


و با identifier یعنی todo داخل global memory ذخیره می‌شه.
همین‌طور، یه network request روی وب‌براوزر ثبت می‌کنه.

شاخه دوم:
وب‌براوزر ریکوئست رو می‌فرسته به سرور و هر زمانی که response اومد، اون رو داخل todo.value ذخیره می‌کنه.

onFulfilled چیه؟

این یه آرایه از فانکشن‌هاست که وقتی todo.value آپدیت شد، خودشون auto call می‌شن.
یعنی هر فانکشنی که داخل این آرایه باشه، به محض آپدیت شدن value اجرا می‌شه.

ولی ما نمی‌تونیم مستقیم فانکشنی رو به onFulfilled اضافه کنیم، چون یه hidden property هست و دسترسی مستقیم بهش نداریم.
جاوااسکریپت یه متد built-in داده به اسم `then`، که هر چیزی رو بهش پاس بدیم، خودش می‌ره داخل همون آرایه می‌ذاره.

`onRejection` چیه؟

این هم یه آرایه از فانکشن‌هاست برای زمانی که network request به خطا بخوره.
وقتی ریکوئست fail می‌کنه، نه تنها فانکشن‌های داخل onFulfilled اجرا نمی‌شن، بلکه فانکشن‌های داخل onRejection auto trigger می‌شن.

مثل onFulfilled`، `onRejection هم یه hidden property هست و دسترسی مستقیم نداریم.
با استفاده از متد catch می‌تونیم فانکشن خودمون برای error handling رو داخلش قرار بدیم.



پ‌ن:then و catch هر دو توسط Promise ارائه می‌شن و راه ما برای دسترسی به فانکشن‌هاشون هستن.

#js #deep #behind_the_scenes
  • 👍 2
More from @pandora_code
  1. Sep 24, 2026همینه! به نظرم AI میتونه همه چی بزنه و اینکه 'چی' بزنه نیاز به وقت و زمان داره. این نکته خ…
  2. Sep 20, 2026#meme
  3. Sep 19, 2026تا امروز برای تبدیل دیزاین‌های فیگما به کد توسط ایجنت‌هام از این استفاده میکردم تا به API…
  4. Sep 13, 2026وسط کار کردن یهو یادم اومد مفهوم lexical scope توی جاوااسکریپت برام هنوز حس خوبی نداره و ب…
  5. Sep 7, 2026واقعا Roast زیبایی بود برای کلاد کد :)) #fun
  6. Aug 30, 2026این روزا چیزی که زیاده skill برای ایجنت‌هاست ولی این skill set های اقای Addy Osmani واقعا…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →