0
setTimeout(function(){
console.log('one');
}, 3000);
console.log('two');
我想打印one
第一,然後在控制檯two
。當前代碼首先打印two
。
如何才能停止處理,直到setTimeout()
完成?
注意到,我想執行setTimeout()
一次。不是每3秒。
這是我真正的代碼:
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!');
}
}
當我打電話myfunc()
功能,它總是拋出Engine is bussy!
。怎麼了?
在'timeout'回調結束時移動'two'的代碼。 – Tushar
你可以把'console.log('two')'放在'setTimeout'函數 –
裏面,你創建了一個名爲「status」的全局變量,它已經被窗口使用過,重命名它或者把它放在另一個作用域中。 –