بررسی فرایند وارد شدن اطلاعات داخل آرایه listener

پرسیده شده
فعالیت 1033 روز پیش
دیده شده 266 بار
0

سلام استاد

یک متغییر listener  تعریف کردید و این متغییر رو به عنوان ورودی به تابع subscribe پاس دادید و داخل این تابع listener داخل listener پوش کردید ؛ شاید اشتباه میکنم ولی اینطور متوجه شدم.

انگار لوپ اتفاق افتاده ، یه تابع خالی داخل یه تابع خالی پوش شده این چطور داره به تغییر state گوش میده؟

    const subscribe = (listener) => {
        listeners.push(listener)

        return () => {
            listeners = listeners.filter(l => l !== listener)
        }
    }
فایل پیوست

0
حذف شده

سلام

داخل createStore یک متغیر listeners تعریف کردم که در واقع یک آرایه هست برای نگهداری توابع listener

همچنین داخلی createStore یک تابع تعریف کردم به اسم subscribe  که در ورودی یک تابع رو دریافت میکنه که حالا اینجا من اسمش رو گذاشتم listener و شما هر اسمی که دوست داشته باشی میتونی بزاری (فکر کنم این رو با اون listeners یکمی اشتباه گرفته باشی) این تابع ۲ تا کار انجام میده اون تابعی رو که در ورودی دریافت کرده اضافه میکنه به آرایه listeners  و همچنین یک تابع return میکنه که میتونیم با استفاده از این تابع که برگشت داده شده مقداری رو که به آرایه listeners  اضافه کردیم رو حذف بکنیم

یک تابع دیگه هم داریم به اسم dispatch که هر بار فراخوانی میشه همه توابعی رو که داخل listeners هستند رو فرخوانی میکنه و همه جاهایی که نیاز هست متوجه تغییر state میشن

 

هر بخشی که نیاز به توضیح اضافه داره لطفا بگو که بیشتر توضیح بدم

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

15 تیر 00

جلسه اضافه کردن قابلیت subscribe به Store