result.js 1.04 KB
/**
 * Created by lintry on 16/4/16.
 */
"use strict";
var _ = require('lodash'),
  Promise = require('bluebird');
var enums = {
  ERROR: 'ERROR', //操作失败
  OK: 'OK', //操作成功
  EXPIRED: "EXPIRED", //链接过期,禁止进入系统
  PASS: "PASS", //登录成功,可以进入系统
  WRONG: "WRONG" //账号异常
};

/**
 * 创建返回结果对象
 * @param ret 返回值
 * @param msg 操作提示
 * @param err 错误提示
 * @param content 相关数据
 * @returns {Result}
 * @constructor
 */
var Result = function(ret, msg, err, content) {
  if (!(this instanceof Result)) {
    return new Result(ret, msg, err, content);
  }

  this.ret = this.content = this.token = void 0;
  this.msg = msg;
  this.err = err;
  ret && enums[ret] && (this.ret = enums[ret]);
  content && (this.content = content);

  /**
   * 返回一个自身为参数的promise
   */
  var me = this;
  this.promise = function () {
    return new Promise(function(resove){
      resove(me);
    });
  };
  return this;
};

_.merge(Result, enums);

module.exports = Result;