效仿后端三层架构的前端实现

2016-11-30  本文已影响0人  麻辣小隔壁

课前作业

现状分析

实现

}
_delete(){
ajax('delete.json',param,callback)
}
_update(){
ajax('update.json',param,callback)
}

大白话说就是把ajax请求封装了一下。
- **业务逻辑层**我们以 on 开头,表示向外暴露,并同时在action中注册。比如这样

```javascript
//store.js
onAdd(){
    _add();
    _update();
}

onDelete(){
    _delete();
    _update();
}
//*********************** 分割线 ************************
//action.js
module.exports = Reflux.createActions([
  'add',
  'delete'
]);

}
handleDelete(){
Action.delete();
}


- 通过这种方式,我们就实现了后端同学的三层架构。

## Promise 语法糖
- 在事务处理层我们避免不了要有执行顺序,比如 add 执行完后再去执行 update。传统的写法肯定就是嵌套,在 add 执行完后去执行 update。这样就会造成金字塔式的代码,让代码很难维护。Promise应运而生。
- 代码具体实现
 - 数据访问层
  ```javascript
  //_add 改造,主要是返回promise对象
    _add(){
     var promise = new Promise(function(resolve, reject) {
       $.ajax('add',params,function(){
          if(success){
              //Todo...
             resolve(value); 
          }else{
              //Todo...
            reject(error);
          }
     });
    return promise;
}
  //_update 改造,主要是返回promise对象
 _update(){
     var promise = new Promise(function(resolve, reject) {
       $.ajax('update',params,function(){
          if(success){
              //Todo...
             resolve(value); 
          }else{
              //Todo...
            reject(error);
          }
     });
    return promise;
}
onAdd(){
      _add.then(function(){
         //_add成功回调,这个时候我们去执行_update(也是promise对象),并且把_update 返回
        return _update();   

      },function(){
        //_add失败回调 Todo...

      }).then(function(){
        //_update成功回调 Todo...

      },function(){
        //_update失败回调 Todo...

      })
}

使用场景

上一篇下一篇

猜你喜欢

热点阅读