2016-08-17 5 views
0

Ich folge einem Redux tutorial series. Dan Abramov zeigt, wie man einen Redux-Store von Grund auf neu erstellt. Hier ist das Stück CodeImplementieren Redux Store von Scratch

const createStore = (reducer) => { 
let state; 
let listeners = []; 

const getState =() => state; 

const dispatch = (action) => { 
    state = reducer(state, action); 
    listeners.forEach(listener => listener()); 
}; 

const subscribe = (listener) => { 
    listeners.push(listener); 
    return() => { 
    listeners = listeners.filter(l => l !== listener()); 
    }; 
}; 

dispatch({}); 

return {getState, dispatch, subscribe}; 
} 

Die folgende Zeile in der Dispatch-Funktion ist, was ich bin verwirrt über,

listeners.forEach(listener => listener()); 

Ich weiß, dass es durch alle Elemente in den Hörer Array iteriert & verläuft jedes Element zur Pfeilfunktion.

Aber was bedeutet dies Zuhörer tun()

+1

Sie drücken Zahlen in das 'Listeners'-Array und Sie versuchen, diese Zahl als Funktion aufzurufen. – Dieterg

+0

Können Sie die Linie in der Versandfunktion erklären. – TA3

+1

Sie sollten den "Store" abonnieren, indem Sie eine Funktion verwenden. Sobald Sie eine "Aktion" auslösen, werden alle Listener-Funktionen aufgerufen. – Dieterg

Antwort

0

listeners ist ein Array von Funktionen so listeners.forEach(listener => listener()); iteriert durch die Listener-Funktionen und ruft sie mit listener().

Verwandte Themen