- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想将异步函数转换为同步函数。
function fetch() {
var result = 'snap!';
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function messyCallback(data){
result = data;
});
return result;
}
document.write(fetch());
结果总是“啪!”,因为 $.getJSON
在 fetch()
完成后运行。
我的第一个想法是:
function fetch() {
var result = 'snap!';
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function messyCallback(data){
result = data;
});
<strong>while (true) {
if (result != 'snap!') return result;
}</strong>
}
它不工作,也吹掉了浏览器。
我读到了 generators and iterators in JS 1.7 ,但我不知道如何将其应用于我的问题。
这个问题实际上不是关于 jQuery 的。而不是 $.getJSON可以是任何其他异步函数。
最佳答案
另请参阅此问题:Halt JavaScript execution without locking up the browser
完全按照自己的意愿行事是行不通的。在单线程事件驱动环境中,您不能从异步创建同步(只能反过来!)。您应该接受该语言的异步特性,并围绕处理回调开发您自己的一致风格,以便您的代码可读/可维护。例如,您可以选择从不在回调闭包内做任何实际工作,而只是简单地调用另一个顶级函数/方法以保持清晰。
关于javascript - 没有乱七八糟的回调的 JavaScript 异步编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222847/
我关于套接字的代码分为三个类,现在我已经研究它(并学习套接字 Api)几个小时了,我已经把它归结为只剩下一个错误(我可以看)。从服务器收到的消息将不会打印,而是抛出此错误。 Exception in
当我打开个人热点连接时,我的布局被下推。我怎样才能删除顶部的这个热点栏或者得到这个栏的通知并根据它重新排列我的 View ?谢谢。 最佳答案 当状态栏的大小发生变化时,将调用您的应用程序委托(dele
我正在编写一个 Chrome 扩展,它在现有页面的顶部插入一个 DIV。我为我的 DIV 指定了不同的 ID 名称“juxiSidebar”。此外,我插入到页面中的所有 ID 和类都包含前缀“juxi
我正在为我的工作创建一个 Javascript 框架,支持最现代的浏览器(FF 4+、Chrome、Opera 11+、IE8+)。我在尝试扩展 prototype 时遇到了一些问题样式规则(假设 r
我是一名优秀的程序员,十分优秀!