سلام استاد
یک متغییر listener تعریف کردید و این متغییر رو به عنوان ورودی به تابع subscribe پاس دادید و داخل این تابع listener داخل listener پوش کردید ؛ شاید اشتباه میکنم ولی اینطور متوجه شدم.
انگار لوپ اتفاق افتاده ، یه تابع خالی داخل یه تابع خالی پوش شده این چطور داره به تغییر state گوش میده؟
const subscribe = (listener) => {
listeners.push(listener)
return () => {
listeners = listeners.filter(l => l !== listener)
}
}
سلام
داخل createStore یک متغیر listeners تعریف کردم که در واقع یک آرایه هست برای نگهداری توابع listener
همچنین داخلی createStore یک تابع تعریف کردم به اسم subscribe که در ورودی یک تابع رو دریافت میکنه که حالا اینجا من اسمش رو گذاشتم listener و شما هر اسمی که دوست داشته باشی میتونی بزاری (فکر کنم این رو با اون listeners یکمی اشتباه گرفته باشی) این تابع ۲ تا کار انجام میده اون تابعی رو که در ورودی دریافت کرده اضافه میکنه به آرایه listeners و همچنین یک تابع return میکنه که میتونیم با استفاده از این تابع که برگشت داده شده مقداری رو که به آرایه listeners اضافه کردیم رو حذف بکنیم
یک تابع دیگه هم داریم به اسم dispatch که هر بار فراخوانی میشه همه توابعی رو که داخل listeners هستند رو فرخوانی میکنه و همه جاهایی که نیاز هست متوجه تغییر state میشن
هر بخشی که نیاز به توضیح اضافه داره لطفا بگو که بیشتر توضیح بدم