اذهب إلى المحتوى

السؤال

نشر (معدل)

مرحباً،

أعمل على عمل state management باستخدام Redux Saga ولكن عندي مشكلة انه اريد عمل middleware ليحل كل الـ sagas الموجودة عندي.

لقد قمت باستخدام Promise.all ولكنها لم تعمل.

import authSagas from './auth/sagas';
import notificationSagas from './notification/sagas';

function rootSagas() {
	Promise.all([...authSagas, notificationSagas]);
}

export default rootSagas;

 

تم التعديل في بواسطة عمر سالم2

Recommended Posts

  • 0
نشر

تتكون حلقة الـ Redux Saga من الـ JavaScript Generators. كما تعلم، فعند إنشاء، على سبيل المثال، ساجا للـ Auth بالشكل التالي لعمل تسجيل خروج للمستخدم:

function* requestLogout() {
	const isLogged = yield select(authSelectors.isLogged);

	if (isLogged) {
		yield call(authModels.logout);
	}

	yield put(authActions.logout());
}

ستلاحظ أن كل شئ يتم تمريره ياستخدام الـ Effects مثل call و put مع الـ generators عن طريق yield.

بكل بساطة، القيم العائدة من الـ yields هي نوع من التعليمات في شكل كائنات (object) ليستطيع Redux Saga تمريرها للـ saga التالية. لذا، عند عمل الـ root saga للتطبيق، يحب أولاً تحويل الدالة الى generator واستخدام التأثير all:

function* rootSagas() {
	yield all([...authSagas, ...notificationSagas]);
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...