observe.js 383B

12345678910111213141516171819202122
  1. export default function observe() {
  2. const listeners = []
  3. function notify(...args) {
  4. listeners.forEach(listener => listener(...args))
  5. }
  6. function subscribe (listener) {
  7. listeners.push(listener)
  8. return function unsubscribe() {
  9. const index = listeners.indexOf(listener)
  10. listeners.splice(index, 1)
  11. }
  12. }
  13. return {
  14. notify,
  15. subscribe
  16. }
  17. }