87,997
社区成员




//创建新PageState
function getNewPageState(buyerNick) {
var location = getLocation(buyerNick);
var lastServiceTime = getLastServiceTime(buyerNick);
var buyerInfo = new BuyerInfo(buyerNick, location, lastServiceTime);
var type = "remai";
var pageNo = 1;
var pageSize = 3;
var promTab = new PromTab(type, pageNo, pageSize);
_pageState = new PageState(buyerInfo,promTab)
return _pageState;
}
var gflag = {
a : 0, //getLocationFlag
b :0, //getLastServiceTime
}
function getLocation(next){
if(gflag.a==1){
next();
return;
}else{
function wrapCallback(next){
return next.done
}
ajax;
}
}
function getLastServiceTime(next){
if(gflag.b==1){
next();
return;
}else{
function wrapCallback(next){
return next.done
}
ajax;
}
}
function requrie(){
var depend = arguments[0]; // depend = [getLocation,getLastServiceTime]
var remaining = len = depend.length;
var queue = {
data : [getLocation,getLastServiceTime,YouFunction],
next : function(){
queue.data[++queue.i];
},
i : 0,
done : function(){
queue[i](queue.next);
}
}
function YouFunction(){
youcode
}
var updateFunc = function(){
}
if(len>1){
queue.done();
}
if ( !remaining ) {
queue.next().done();
}
}
var gflag = {
a : 0, //getLocationFlag
b :0, //getLastServiceTime
}
var time = null;
function getLocation(){
}
function getLastServiceTime(){
}
function getNewPageState(){
if(gflag.a==1&&gflag.b==1){
clearInterval(time);
doYouFunction();
}
if(gflag.a==0&&gflag.b==0){
getLastServiceTime();
getLocation();
}
if(gflag.a==1&&gflag.b==0){
getLastServiceTime();
}
if(gflag.a==0&&gflag.b==1){
getLocation();
}
time = setInterval(getNewPageState,500);
}
2
function getNewPageState(){
require([getLocation,getLastServiceTime],doYouFunction);
}
function getNewPageState(nick,callback) {
getLocation(nick,function(location){
//好吧,这里你可以拿到location了,尽情的用吧,
//不过,还想还有lastServerTime没拿到
//于是:
getLastServerTime(nick,function(time){
//好了,location和lastServerTime都有了,尽情的用吧,
//。。。
//pageState弄好了怎么返回?return? no no no
//这里已经return不回去了,好吧,不是说好的callback吗?
callback(pageState);
});
});
}
//创建新PageState
function getNewPageState(buyerNick,callback) {
getLocation(buyerNick,function(location){
getLastServiceTime(buyerNick,function(lastServiceTime ){
var buyerInfo = new BuyerInfo(buyerNick, location, lastServiceTime);
var type = "remai";
var pageNo = 1;
var pageSize = 3;
var promTab = new PromTab(type, pageNo, pageSize);
var _pageState = new PageState(buyerInfo,promTab);
callback(_pageState ); //不是return 而是调用callback然后传参,
//同理getLocation\getLastServiceTime也应该设计成这样,而不是return
//getLocation = function(buyerNick,callback){ ....callback(location);}
});
});
}
/*调用:
getNewPageState(buyerNick,function(pageState){
//pageState
});*/
primise模式是这样:
//假设用的是jQuery的实现
//创建新PageState
function getNewPageState(buyerNick) {
var defer = $.Deferred();
$.when(getLocation(buyerNick),getLastServiceTime(buyerNick))
.done(function(locationlastServiceTime ){
var buyerInfo = new BuyerInfo(buyerNick, location, lastServiceTime);
var type = "remai";
var pageNo = 1;
var pageSize = 3;
var promTab = new PromTab(type, pageNo, pageSize);
var _pageState = new PageState(buyerInfo,promTab);
defer.resolve(_pageState );
});
return defer.promise();
}
/*调用:
getNewPageState(buyerNick).done(function(pageState){
//pageState
});*/