چجوری میشه از اجرای میدولر قبلی جلوگیری کرد وقتی میدلور بعدی به هر دلیلی اجرا نشده است ؟
مثلا تو فرایند پاک کردن میخوام خود فایل و ایدی اون از چند جا دیگه پاک بشه . میتونم کاری کنم که تا اولی انجام نشده دومی انجام نشه ولی چیکار باید بکنم که اگه دومی انجام نشد اولی کنسل بشه یا اطلاعاتش برگرده یا همچین چیزی ؟؟
طبق گفته جِفری: میدِل وِر یا میانافزار رو در واقع مثل یک پیاز (حالت لایه به لایه) در نظر بگیرید.
فرض کنید درخواستی به سمت سرور شما ارسال میشه و شما روی این درخواست چند میدلور اعمال میکنید.
درخواست به میدل ور اول میرسه.. ۲ حالت وجود داره:
یعنی در واقع تا زمانی میدلور اول با موفقیت اجرا نشه، میدلور های بعدی شانسی برای اجرا شدن ندارند.
ممنون از توضیحتون ولی منظور من اینه که اگر میدولر دوم انجام نشد راهی هست که میدلور اولی کنسل بشه ؟
یعنی میدلور اولی اجرا شده و رفته دومی حالا به هر دلیلی میدلور دومی اجرا نمیشه و درخواست نا تمام باقی میمونه ولی میدولر اولی اجرا شده ولی در نهایت درخواست به پایان نرسیده و من میخوام که کل فرایند کنسل بشه . به عنوان مثال تو فرایند پاک کردن میخوام خود فایل و ایدی اون از چند جا دیگه پاک بشه . تو میدلور اول داکیومنت پاک میشه و تو میدولر دوم ایدی اون از یه کالکشن دیگه پاک میشه .
حالا میخوام اگه ایدی پاک نشد (میدلور دوم ) داکیومنت هم پاک نشه (میدلور اول)
میدلور ها بصورت متوالی کار میکنند. از ۱ به ۲ و به ۳ و الا آخر...و در واقع هر کدوم موقعیت و امکان لغو درخواستو به ما میدن.
برای پیادهسازی چنین سیستمی :
در طراحی چنین سیستمی در PHP میشه براحتی از الگوی طراحی Chain of Responsibility استفاده کرد. اما در مورد جاوااسکریپت، نمیدونم چنین الگویی قابل پیادهسازی یا کار معقولی هست.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟