var user;
getUser( userId, function onUser(userProfile){
var orders = user ? user.orders : null;
user = userProfile;
if (orders) {
user.orders = orders;
}
} );
getOrders( userId, function onOrders(userOrders){
if (!user) {
user = {};
}
user.orders = userOrders;
} );
是我看不懂吗?没发现这段代码有排他性,如果都是网络请求,那最后user上面不都会有userProfile和userOrders信息吗? 除非userProfile是一个非引用类型的数据. 如果getUser先回来,那么在onUser回调函数执行后,user的值就是userProfile了,然后getOrders后回来,那么userOrders还是会最后挂在到user.orders上,原来的userProfile也没有被覆盖呀?