Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.45 KB | None | 0 0
  1. function subscribe(listener) {
  2. if (typeof listener !== 'function') {
  3. throw new Error('Expected listener to be a function.')
  4. }
  5.  
  6. let isSubscribed = true
  7.  
  8. ensureCanMutateNextListeners()
  9. nextListeners.push(listener)
  10.  
  11. return function unsubscribe() {
  12. if (!isSubscribed) {
  13. return
  14. }
  15.  
  16. isSubscribed = false
  17.  
  18. ensureCanMutateNextListeners()
  19. const index = nextListeners.indexOf(listener)
  20. nextListeners.splice(index, 1)
  21. }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement