Skip to content

Instantly share code, notes, and snippets.

@winsonwq
Created March 4, 2012 16:54
Show Gist options
  • Save winsonwq/1973862 to your computer and use it in GitHub Desktop.
Save winsonwq/1973862 to your computer and use it in GitHub Desktop.
pseudocode of renderView
require(['./lib/Mr.Async', './lib/Recoder/main'], function(Mr, interpreter){
function getListData(url, callback){
$.get(url, callback, 'json');
}
function getSideBarData(url, data, callback){
$.get(url, data, callback, 'json');
}
/*
COMMON WAY
*/
getListData(url1, function(list){
getSideBarData(url2, { a : 1}, callback(sideBar){
renderView({
list: list,
sideBar : sideBar
});
});
});
/*
USING Mr.Deferred / $.Deferred(jQuery)
*/
Mr.when(getListData(url1), getSideBar(url2, { a : 1 })).done(function(list, sideBar){
rederView(list, sideBar);
});
/*
EXPECTED WAY
*/
var list = getlistData(url1);
var sideBar = getSideBarData(url2, { a : 1 });
renderView({
list : list,
sideBar : sideBar
});
/*
USING Mr.Async
*/
eval(interpreter.recoder(function(){
var list = $await(getListData(url1));
var sideBar = $await(getSideBarData(url2, { a : list[0].id }));
renderView({
list : list,
sideBar : sideBar
});
})).start();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment