UNPKG

imobile_for_reactnative

Version:

iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

45 lines (38 loc) 1.09 kB
import { HttpRequest, HttpRequestParam, HttpResponse, HttpRequestFailed } from './HttpRequest' /** node 原生fetch封装的网络请求接口*/ export class Fetch implements HttpRequest { request = async (param: HttpRequestParam): Promise<HttpResponse | HttpRequestFailed> => { const fetchPromise = fetch(param.url, { method: param.method, headers: param.headers, body: param.body, }) try { const response = await Promise.race([fetchPromise, timeout(40)]) if(response === 'timeout') { return { error: 'timeout' } } const pJson = response.json() const pText = response.clone().text() return { headers: response.headers, status: response.status, json: () => pJson, text: () => pText, } } catch (e) { return { error: 'error'} } } } /** * 超时返回‘timeout’ * @param sec 超时秒数 */ function timeout(sec: number): Promise<'timeout'> { return new Promise(resolve => { setTimeout(() => { resolve('timeout') }, 1000 * sec) }) }