【发布时间】:2015-11-13 18:28:03
【问题描述】:
大家好,我有一个异步函数,我必须在异步结束时运行同步函数:
google.setOnLoadCallback(googlata);
function googlata(){
alert('hello');
}
function endgooglata(){
alert('i am synchronous');
}
我尝试将 setInterval 添加到同步函数中,显然它可以工作......但我不喜欢......
我想要一个更精确的方法 当然也很简单……
存在吗?
编辑
我已经创建了 jsfiddle,但显然不能直线工作,因为代码更复杂......所以我将解释它是如何工作的:
我有一个带有简单搜索栏的 page.html,并通过“get”方法将数据发送到 paginaX.html ...
在 This is my paginaX 中有我的 jsfiddle 的代码 ....
当函数googlata()运行时,根据在bar中进行的研究,它会在div id="cse"中创建一个页面结果。
我操纵 URL 并获取搜索的关键字...
SERP 已正确创建。
问题出在哪里???
问题是有些结果有图像,有些没有......我希望每个结果的描述性摘要与左边距的距离相同......
然后有图像的结果会给他们填充..
这发生在“modifica()”
但是如果结果页面没有完全创建,函数modifica() 会出现问题(用图像给结果填充)。所以绝对有必要在googlata ()的末尾启动modifica()。
SetInterval 是一个非常糟糕的解决方案......因为有时googlata() 使用超过 1300 毫秒的设置,然后它会产生其他错误......
这是 JSFIDDLE:
我希望你现在能帮助我...
【问题讨论】:
-
谁
function googlata(callback){ return function() { alert('hello'); callback(); } } google.setOnLoadCallback(googlata(endgooglata));回答你的问题? -
你的意思是主线程在等待action结束吗?
-
@DragonRock 我不明白......如果可能的话,请用一个例子写一个答案
-
@user3162975 是的,我想哈维尔回答了你的问题
-
@DragonRock 你能帮帮我吗?
标签: javascript asynchronous synchronous