为什么Javascript不按顺序执行代码
Why doesn't Javascript execute the code in sequence?
>我有这个简单的函数
function getArticles(page){
page = page || 1;
loading = false;
var articlesCache = getArticlesCache(page);
if(articlesCache){
articles = articlesCache.data;
}else{
make a request and then save the cache;
}
loading = false;
pageAttr = {
currentPage : articlesCache.current_page
lastPage : articlesCache;last_page
}
}
如果我这样做,loading
初始化为 false
pageAttr
并尝试使用 articlesCache
创建属性,该属性尚不存在。
事情是这样的,loading
和pageAttr
在 if/else 之前运行。我知道我可以把这段代码放在 if/else 中,但我认为这不好,因为我要做两次我可以做一次。那么,如何使代码像在PHP和其他编程语言中一样按顺序运行呢?
如果您有权访问 getArticlesCache 函数,则可以修改它以在完成后触发回调。
function getArticlesCache(page, callbackFunction){
//your existing code.
callbackFunction();
}
var articlesCache = getArticlesCache(page, function() {
//code to execute when getArticlesCache is Finished...
alert( 'getArticlesCache is Finished!' );
});
阅读更多:http://mrbool.com/callback-functions-in-javascript/28614#ixzz46PNJgXyH
Javascript 是异步触发 n 步函数。我建议你阅读这篇文章:
https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/JavaScript_basics
https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/Using_js-ctypes/Declaring_and_Using_Callbacks
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise
相关文章:
- 有没有一种方法可以通过只引用JavaScript来执行代码
- jQuery在类更改时执行代码
- 如果此代码运行,请执行代码
- Javascript等待ajax成功后再执行代码
- 如何在onclick事件执行代码时在ImageButton上设置加载gif
- php,如果我点击按钮程序重新加载页面,并且从不继续执行代码
- Javascript渲染.如何编写Javascript;t在函数调用结束之前继续执行代码
- 无法让 jQuery 以正确的顺序执行代码
- ReactJS:在带有 ajax 调用的 .map() 语句完成后执行代码
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 自执行代码中的“this”
- 为什么Javascript不按顺序执行代码
- 如何在javascript中连续执行代码
- 加载所有图像后执行代码
- 按下多个按钮时执行代码
- 如何在检索到数据后使用drawCallback执行代码
- 等待promise解析后再执行代码
- jQuery没有为具有新id的新元素执行代码
- 如何在客户端Collection增长时立即反应性地执行代码
- 如何将变量表达式转换为可执行代码(而不是替换值)