init
This commit is contained in:
58
PCSurvey/PCstatic/js/plugins/jspsych-call-function.js
Normal file
58
PCSurvey/PCstatic/js/plugins/jspsych-call-function.js
Normal file
@@ -0,0 +1,58 @@
|
||||
/**
|
||||
* jspsych-call-function
|
||||
* plugin for calling an arbitrary function during a jspsych experiment
|
||||
* Josh de Leeuw
|
||||
*
|
||||
* documentation: docs.jspsych.org
|
||||
*
|
||||
**/
|
||||
|
||||
jsPsych.plugins['call-function'] = (function() {
|
||||
|
||||
var plugin = {};
|
||||
|
||||
plugin.info = {
|
||||
name: 'call-function',
|
||||
description: '',
|
||||
parameters: {
|
||||
func: {
|
||||
type: jsPsych.plugins.parameterType.FUNCTION,
|
||||
pretty_name: 'Function',
|
||||
default: undefined,
|
||||
description: 'Function to call'
|
||||
},
|
||||
async: {
|
||||
type: jsPsych.plugins.parameterType.BOOL,
|
||||
pretty_name: 'Asynchronous',
|
||||
default: false,
|
||||
description: 'Is the function call asynchronous?'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
plugin.trial = function(display_element, trial) {
|
||||
trial.post_trial_gap = 0;
|
||||
var return_val;
|
||||
|
||||
if(trial.async){
|
||||
var done = function(data){
|
||||
return_val = data;
|
||||
end_trial();
|
||||
}
|
||||
trial.func(done);
|
||||
} else {
|
||||
return_val = trial.func();
|
||||
end_trial();
|
||||
}
|
||||
|
||||
function end_trial(){
|
||||
var trial_data = {
|
||||
value: return_val
|
||||
};
|
||||
|
||||
jsPsych.finishTrial(trial_data);
|
||||
}
|
||||
};
|
||||
|
||||
return plugin;
|
||||
})();
|
||||
Reference in New Issue
Block a user