jsPsych icon indicating copy to clipboard operation
jsPsych copied to clipboard

feat: add callbacks on experiment finish

Open mgrewe opened this issue 3 years ago • 4 comments

Hi,

this is related to this discussion. The PR basically creates functionality to register callbacks that are executed once the experiment has finished.

Thanks, Martin

mgrewe avatar Oct 17 '22 13:10 mgrewe

⚠️ No Changeset found

Latest commit: 3e833670cb83eda1422a0142ac74121e525de627

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

changeset-bot[bot] avatar Oct 17 '22 13:10 changeset-bot[bot]

Thanks for the PR @mgrewe. To me, this solution looks like a workaround for very specific situations. Maybe adding an optional on_experiment_finish callback to extensions would be a better alternative? @jodeleeuw Interested in your thoughts about this.

bjoluc avatar Oct 19 '22 14:10 bjoluc

I agree that this is a specific situation.

Maybe adding an optional on_experiment_finish callback to extensions would be a better alternative?

I think @mgrewe was proposing such a callback in #2809, and I'm open to that idea.

Another option that doesn't require modification would be to simply expose a function from the extension that can be called for cleanup. (There are several functions like this in the webgazer extension). Then this method can be called in the regular event handler for the experiment finishing. I recognize that this isn't as clean of an option if the cleanup is mandatory -- then the extension should really handle it automatically.

jodeleeuw avatar Oct 19 '22 15:10 jodeleeuw

Thanks for the feedback. I see your points and also think that the proposed PR somewhat breaks with the design ideas behind the extension/plugin mechanism. I like the idea of @bjoluc to add a class member function on_experiment_finish that may be used for the desired purpose. Do you think adding this might be an option?

mgrewe avatar Oct 21 '22 05:10 mgrewe