2017-06-14 96 views
0

我需要下面的代碼呼叫的兩個功能,一個又一個在JavaScript的setTimeout

setTimeout(function(){loadEditor(param);}, 50); 

後,下面的代碼

document.getElementById("someID").focus(); 

運行,但我無法使它asynchronous.Since我不能修改

function loadEditor(param){ /* some stuff */ } 

反正做出來的呢? 我曾嘗試,直到什麼現在

setTimeout(function(){ 
    loadEditor(param); 
    document.getElementById("someID").focus(); 
}, 50); 

setTimeout(function(){ 
    $.when(loadEditor('question_stem-text')).done(function() { 
     document.getElementById("someID").focus(); 
     }); 
}, 50); 

不成功

+2

什麼'loadEditor'嗎? – Satpal

+0

它正在初始化大量的值和加載編輯器的字段 –

+0

在您的第一次嘗試。你有沒有嘗試過'console.log()'來檢查它是否被調用? – Wernerson

回答

1
//ES6++ 
const delay = new Promise((resolve, reject) => { 
    setTimeout(() = > { 
     loadEditor(param); 
     resolve(); 
    }, 50); 
}); 

delay.then(() => { 
    document.getElementById("someID").focus(); 
});