コールバックがあり、複数回(setTimeOutを介して再帰的に)コールバックしています...戻り値をキャプチャする条件は1つだけです。つまり、コールバックが自分自身をコールバックし終えたときです。
しかし、この状態で何かを返すと、期待したところに届かず、どこに行くのか全くわかりません。以下のスニペットには、これらのポイントを示す2つのconsole.logステートメントがあります。私がそれを送るところ...そして私がそれを期待するところ。
if( MC.C.movePane( pane_element, 0, 0, 0, 'begin' ) ) {
cover_element.style.display = 'none';
console.log('I never got it');
}
return o_p;
},
movePane: function( pane_element, start, end, index, state ) {
if( ( state === 'begin' ) ) { // init the function
start = parseInt( window.getComputedStyle( pane_element, null ).getPropertyValue("top"), 10 );
end = start + 40;
index = start;
state = 'down';
MC.C.movePane( pane_element, start, end, index, 'down' );
}
if( ( state === 'down' ) && ( index < end ) ) { // move down
index += 1;
pane_element.style.top = ( index ) + 'px';
setTimeout( function( ){ MC.C.movePane( pane_element, start, end, index, state ); }, 1 );
}
else if( ( state === 'down' ) && index === end ) { // hold
state = 'up';
setTimeout( function( ){ MC.C.movePane( pane_element, start, end, index, state ); }, 2000 );
}
else if( ( state === 'up' ) && ( index > start ) ) { // move up
index -= 1;
pane_element.style.top = ( index ) + 'px';
setTimeout( function( ){ MC.C.movePane( pane_element, start, end, index, state ); }, 1 );
}
else if( ( state === 'up' ) && ( index === start ) ) { // all done, return
console.log('I just returned true');
return true;
// document.getElementById( 'po_but_cov' ).style.display='none';
}
}
};