import isType from './isType'; /** * 异步获取数据 * @param {any} dataFn 执行的方法/默认数据 * @param {any} args 执行的方法参数 * @param {Boolean} isDefalut 如果传入的不是Promise对象是否把内空加到default属性上 * @param {any} context 执行上下文 * @returns {Promise} */ export default function getBackData (dataFn: any, args?: any, isDefault?: boolean, context?: any) { return new Promise((resolve, reject) => { let _res: any = dataFn; if (dataFn instanceof Function) { if (args) { if (!(args instanceof Array)) { args = [args]; } _res = dataFn.apply(context, args); } else { _res = dataFn.apply(context); } } if (_res instanceof Promise || isType(_res, 'Promise') || _res && _res.then instanceof Function) { _res.then(resolve, reject); } else { if (isDefault) { resolve({ default: _res }); } else { resolve(_res); } } }); }