関数はsetTimeout
実行を遅らせません。代わりに、関数を後で実行するようにスケジュールします。必要なことを行うには、コードを次のように変更する必要があります。
function(){
...
...
doDelay(function(){
some other functionality....
});
}
function doDelay(callback){
setTimeout(function() {callback()}, 10000);
}
実際、javascript にはすでに doDelay 関数があります。それは呼ばれsetTimeout
ます:
function(){
...
...
setTimeout(function(){
some other functionality....
},10000);
}
外側の関数で、その後に続くコードの実行も遅らせたい場合は、コールバックも渡す必要があります。
function foo (callback){
...
...
doDelay(function(){
some other functionality....
callback();
});
}
たとえば、次のように書き換えることができます。
foo();
// do other stuff after foo...
これに:
foo(function(){
// do other stuff after foo...
});
基本的に、コールバックを中心にロジックを再構築する必要があります。