{"action":"created","issue":{"url":"https://api.github.com/repos/phetsims/axon/issues/31","labels_url":"https://api.github.com/repos/phetsims/axon/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/phetsims/axon/issues/31/comments","events_url":"https://api.github.com/repos/phetsims/axon/issues/31/events","html_url":"https://github.com/phetsims/axon/issues/31","id":35845087,"number":31,"title":"Property.once can be fired multiple times if the observer triggers other changes to the property","user":{"login":"jbphet","id":3082831,"avatar_url":"https://avatars.githubusercontent.com/u/3082831?v=3","gravatar_id":"","url":"https://api.github.com/users/jbphet","html_url":"https://github.com/jbphet","followers_url":"https://api.github.com/users/jbphet/followers","following_url":"https://api.github.com/users/jbphet/following{/other_user}","gists_url":"https://api.github.com/users/jbphet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbphet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbphet/subscriptions","organizations_url":"https://api.github.com/users/jbphet/orgs","repos_url":"https://api.github.com/users/jbphet/repos","events_url":"https://api.github.com/users/jbphet/events{/privacy}","received_events_url":"https://api.github.com/users/jbphet/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"jbphet","id":3082831,"avatar_url":"https://avatars.githubusercontent.com/u/3082831?v=3","gravatar_id":"","url":"https://api.github.com/users/jbphet","html_url":"https://github.com/jbphet","followers_url":"https://api.github.com/users/jbphet/followers","following_url":"https://api.github.com/users/jbphet/following{/other_user}","gists_url":"https://api.github.com/users/jbphet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbphet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbphet/subscriptions","organizations_url":"https://api.github.com/users/jbphet/orgs","repos_url":"https://api.github.com/users/jbphet/repos","events_url":"https://api.github.com/users/jbphet/events{/privacy}","received_events_url":"https://api.github.com/users/jbphet/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2014-06-16T23:16:56Z","updated_at":"2015-08-06T15:38:06Z","closed_at":"2015-08-06T15:38:06Z","body":"The Property.one function doesn't unlink the observer until after it fires it, which means that if the observer causes some action which triggers another change to the property, the observer can get fired again.  It would be better to first unlink the observer and then invoke it so the observer doesn't end up getting called multiple times.\r\n\r\nFor reference, this issue was discovered while working on the interaction between orphan release and animation observers in the Area Builder simulation."},"comment":{"url":"https://api.github.com/repos/phetsims/axon/issues/comments/128412763","html_url":"https://github.com/phetsims/axon/issues/31#issuecomment-128412763","issue_url":"https://api.github.com/repos/phetsims/axon/issues/31","id":128412763,"user":{"login":"jbphet","id":3082831,"avatar_url":"https://avatars.githubusercontent.com/u/3082831?v=3","gravatar_id":"","url":"https://api.github.com/users/jbphet","html_url":"https://github.com/jbphet","followers_url":"https://api.github.com/users/jbphet/followers","following_url":"https://api.github.com/users/jbphet/following{/other_user}","gists_url":"https://api.github.com/users/jbphet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbphet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbphet/subscriptions","organizations_url":"https://api.github.com/users/jbphet/orgs","repos_url":"https://api.github.com/users/jbphet/repos","events_url":"https://api.github.com/users/jbphet/events{/privacy}","received_events_url":"https://api.github.com/users/jbphet/received_events","type":"User","site_admin":false},"created_at":"2015-08-06T15:38:06Z","updated_at":"2015-08-06T15:38:06Z","body":"Nope, closing."}}