UNPKG

jbzwebsdk

Version:

Shanghai jinbaozheng easy network technology Co.,Ltd sdk

57 lines (52 loc) 1.53 kB
/** * Created by cuppi on 2017/9/4. */ import {otherUrl} from "../unify/JUrlList"; class JPromise<T> extends Promise<T>{ useParas: (...paras: Array<string|object>) => JPromise<T>; useHeaders: (...paras: Array<string|object>) => JPromise<T>; otherParas?: Array<string|object>; otherHeaders?: Array<string|object>; static create(para: Promise<any> | ((resolve: (value?: any | PromiseLike<any>) => void, reject: (reason?: any) => void) => void)): JPromise<any>{ let promise:Promise<any> = null; if (typeof para == "function"){ promise = new Promise(para); } else { promise = para as Promise<any>; } let hasCanceled_ = false; const wrappedPromise = new Promise((resolve, reject) => { promise.then((val) => hasCanceled_ ? () => { } : resolve(val), () => { // 不写会有警告 }); promise.catch((error) => hasCanceled_ ? () => { } : reject(error)); }); let _promise: JPromise<any> = { ...wrappedPromise, terminate: () => { hasCanceled_ = true; }, then: (resolve, reject) => { return wrappedPromise.then(resolve, reject); }, otherParas: [], otherHeaders: [], useParas: (...paras) => { _promise.otherParas = paras; return _promise; }, useHeaders: (...headers) => { _promise.otherHeaders = headers; return _promise; } } as JPromise<any>; return _promise; } } export default JPromise;