press-plus
Version:
41 lines (36 loc) • 1.02 kB
text/typescript
import type { GetFileFromUrl } from './types';
/**
* @description 小程序端请求远程文件数据
* @param {String} url 文件地址
* @returns arraybuffer格式
*/
// 定义请求成功回调结果的接口
interface RequestSuccessCallbackResult {
/** 开发者服务器返回的数据 */
data: string | Record<string, any> | ArrayBuffer;
/** 开发者服务器返回的 HTTP 状态码 */
statusCode: number;
/** 开发者服务器返回的 HTTP Response Header */
header: Record<string, string>;
/** 开发者服务器返回的 cookies(需开启 cookie 选项) */
cookies?: string[];
}
const getFileFromUrl: GetFileFromUrl = (url: string) => new Promise((resolve, reject) => {
uni.request({
url,
method: 'GET',
responseType: 'arraybuffer',
success(res: RequestSuccessCallbackResult) {
if (res.statusCode !== 200) {
reject(null);
}
resolve(res.data);
},
fail(err: any) {
reject(err);
},
});
});
export {
getFileFromUrl,
};