@daysnap/horn-jssdk
Version:
原生容器面向 H5 开发者提供的基于容器应用内的网页开发工具包
30 lines (29 loc) • 912 B
JavaScript
import { log, nf } from '../utils';
import { Code } from './code';
import { config } from '../config';
/**
* jssdk 核心 无需直接调用
*/
export const core = (options) => {
const { success = nf, fail = nf, service, action, ...params } = options;
const fn = config.mock ?? HornApi.call;
log(service, action, '请求参数 => ', params);
fn((res) => {
log(service, action, '请求返回 => ', res);
const { code, data } = res;
code === Code.SUCCESS ? success(data) : fail(res);
}, (err) => {
log(service, action, '请求错误 => ', err);
fail(err);
}, service, action, params);
};
/**
* 包装函数
*/
export const call = (options) => {
const { success, fail } = options;
if (success || fail) {
return core(options);
}
return new Promise((success, fail) => core(Object.assign({}, options, { success, fail })));
};