好傢伙我有一個異步函數,我必須在異步結束時運行同步功能:在JavaScript中的異步函數結束處運行同步函數?
google.setOnLoadCallback(googlata);
function googlata(){
alert('hello');
}
function endgooglata(){
alert('i am synchronous');
}
我嘗試添加的setInterval的同步功能,顯然它的作品...但我不喜歡...
我想更精確的方法 ,當然簡單...
存在?
編輯
我創建了的jsfiddle但顯然在直線因爲代碼比較複雜不能正常工作,所以,我將解釋它是如何工作的:
我有一個用一個簡單的搜索欄page.html中,並通過「get」方法將數據發送到paginaX.html ...
在這是我paginaX有我的jsfiddle的代碼....
當功能googlata()
正在運行,根據在該欄中進行的研究,它會在div id="cse"
中創建一個頁面結果。
我操縱URL和提取的關鍵字搜索...
的SERP正確創建。
問題在哪裏???
的問題是,一些成果具有圖像和一些不......,我想每個結果的描述摘要是從利潤率左...
然後將結果相同距離有圖像會給他們的填充..
這種情況發生在「modifica()
」
但如果結果頁面沒有完全建立,功能modifica()
意志的問題(給填充與圖像的結果)。所以在googlata()
的末尾推出modifica()
是絕對必要的。
的setInterval是一個非常糟糕的解決方案...因爲有時googlata()
員工超過1300毫秒集,然後它會創建其他錯誤...
THIS IS的jsfiddle:
我希望你能幫助我,現在......
函數googlata(回調){ 返回函數(){ alert('hello'); callback(); } } google.setOnLoadCallback(googlata(endgooglata));'回答你的問題? – tforgione
你的意思是主線程等待行動結束? – Pablo
@DragonRock我不明白...請儘可能用一個例子寫一個答案 – Borja