はこれをしてくださいと仮定しますsetTimeout()が終了するまで、どのように処理を停止できますか?
setTimeout(function(){
console.log('one');
}, 3000);
console.log('two');
は、私が最初にone
を印刷したいし、次にコンソールでtwo
。現在のコードではtwo
が最初に印刷されます。
setTimeout()
まで処理を停止できますか?
注意してください。setTimeout()
を一度実行します。それぞれ3秒ではありません。ここで
は私の実際のコードです:私はmyfunc()
関数を呼び出すとき
var arr = ['mohammad', 'ali', 'zahra', 'fatemeh'],
res = [],
status = true;
function myfunc() {
if (status == true) {
alert('test');
console.log('Engine started fetching a new one!');
status = false;
$('.im_dialogs_search_field').val(arr[0]);
$('.im_dialogs_search_field').trigger('change');
setTimeout(function() {
if ($('li.im_dialog_wrap').length) {
res.push($(this.find('.im_dialog_photo').attr('src')));
} else {
console.log('There is no result for ' + arr[0]);
status = true;
}
}, 3000);
arr.shift();
} else {
console.log('Engine is bussy!');
}
}
、それは常にEngine is bussy!
をスローします。どうしましたか? timeout
内部
'timeout'コールバックの最後に' two'のコードを移動します。 – Tushar
'setTimeout'関数の中に' console.log( 'two') 'を置くことができます –
あなたは既にwindowで使われている" status "という名前のグローバル変数を作成したか、名前を変更するか、別のスコープに入れます。 –