{"action":"created","issue":{"url":"https://api.github.com/repos/yelouafi/redux-saga/issues/15","labels_url":"https://api.github.com/repos/yelouafi/redux-saga/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/yelouafi/redux-saga/issues/15/comments","events_url":"https://api.github.com/repos/yelouafi/redux-saga/issues/15/events","html_url":"https://github.com/yelouafi/redux-saga/issues/15","id":123731175,"number":15,"title":"Put actions as one batch","user":{"login":"satispunk","id":16405686,"avatar_url":"https://avatars.githubusercontent.com/u/16405686?v=3","gravatar_id":"","url":"https://api.github.com/users/satispunk","html_url":"https://github.com/satispunk","followers_url":"https://api.github.com/users/satispunk/followers","following_url":"https://api.github.com/users/satispunk/following{/other_user}","gists_url":"https://api.github.com/users/satispunk/gists{/gist_id}","starred_url":"https://api.github.com/users/satispunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/satispunk/subscriptions","organizations_url":"https://api.github.com/users/satispunk/orgs","repos_url":"https://api.github.com/users/satispunk/repos","events_url":"https://api.github.com/users/satispunk/events{/privacy}","received_events_url":"https://api.github.com/users/satispunk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-23T22:24:57Z","updated_at":"2015-12-24T01:53:18Z","closed_at":null,"body":"Is this possible to put several actions in batch else each put leads to re-render of components?\r\n\r\nput([...actions]) or put(action1, action2, action3, ...) would be great.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/yelouafi/redux-saga/issues/comments/167022441","html_url":"https://github.com/yelouafi/redux-saga/issues/15#issuecomment-167022441","issue_url":"https://api.github.com/repos/yelouafi/redux-saga/issues/15","id":167022441,"user":{"login":"yelouafi","id":5453835,"avatar_url":"https://avatars.githubusercontent.com/u/5453835?v=3","gravatar_id":"","url":"https://api.github.com/users/yelouafi","html_url":"https://github.com/yelouafi","followers_url":"https://api.github.com/users/yelouafi/followers","following_url":"https://api.github.com/users/yelouafi/following{/other_user}","gists_url":"https://api.github.com/users/yelouafi/gists{/gist_id}","starred_url":"https://api.github.com/users/yelouafi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yelouafi/subscriptions","organizations_url":"https://api.github.com/users/yelouafi/orgs","repos_url":"https://api.github.com/users/yelouafi/repos","events_url":"https://api.github.com/users/yelouafi/events{/privacy}","received_events_url":"https://api.github.com/users/yelouafi/received_events","type":"User","site_admin":false},"created_at":"2015-12-24T01:53:18Z","updated_at":"2015-12-24T01:53:18Z","body":"micro tasks (like used by promise.then) are executed withing the same event loop. Meaning even if the overall code triggered by the event handler dispatches multiples actions, We'll stay in the same event loop cycle, If React doesn't touch the DOM during this interval, no browser render will occur.\r\n\r\nI mentioned them because redux-saga dispatches actions from Sagas using microtasks (using promises). If you look at [the real-example bootstrap code](https://github.com/yelouafi/redux-saga/blob/master/examples/real-world/index.js#L15-L23) you'll see I m delaying the render until the next animation frame. Otherwise, the Render will occur synchronously, and the Sagas may miss some startup events (especially the Router related events) because `take` effect will run only on a future microtask. \r\n\r\nusing requestAnimationFrame ensures Sagas are ready to take actions before the UI starts to fire anything. requestAnimationFrame will always be scheduled in a new macro-task, i.e. after all scheduled microtasks terminate "}}