我有这个简单的功能
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
创建属性,但尚未存在。
在if / else之前运行的是loading
和pageAttr
。我知道我可以把这个代码放在if / else中,但我觉得它不好,因为我要做两次,我可以做一次。那么,如何使代码按顺序运行,就像在PHP和其他编程语言中一样?
答案 0 :(得分:0)
如果您有权访问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
答案 1 :(得分:0)