diff --git a/index.js b/index.js index e842d44..b65e63f 100644 --- a/index.js +++ b/index.js @@ -48,15 +48,24 @@ module.exports = { console.log('👇 < BackendRequest > ', { apiWho, apiHow, apiWhat }, ' < /BackendRequest > 👇') let result = {} if (backend === 'CLOUD') { - let { success, header, requestedId, result: resultCloud = {} } = await uniCloud.callFunction({ - name: apiWho, - data: { - apiHow, - apiWhat, - _passtoken: uni.getStorageSync('_passtoken'), - // uniIdToken // uniCloud自动getStorageSync('uni_id_token')并传递为 uniIdToken;也可自行传入 uniIdToken - }, - }) + let { /* success, header, requestedId, */ result: resultCloud = {} } = await uniCloud + .callFunction({ + name: apiWho, + data: { + apiHow, + apiWhat, + _passtoken: uni.getStorageSync('_passtoken'), + // uniIdToken // uniCloud自动getStorageSync('uni_id_token')并传递为 uniIdToken;也可自行传入 uniIdToken + }, + }) + .catch((exp) => { + // 断网或云端返回异常 {errMsg, stack} = error + if (/request:fail/.test(exp.errMsg)) { + return { result: { _state: 'CLIENT_BACKEND_BROKEN' } } + }else { + return { result: { _state: 'CLIENT_BACKEND_EXCEPTION' }} + } + }) result = resultCloud } else { if (method === 'GET') { @@ -71,7 +80,19 @@ module.exports = { header: { _passtoken: uni.getStorageSync('_passtoken') }, data: apiWhat, }) - result = resultServer + if (error) { + if (error.errMsg === 'request:fail') { + // 后台断线 + result = { _state: 'CLIENT_BACKEND_BROKEN' } + } else (error.errMsg==='request:fail timeout') { + // 后台异常而超时返回 + result = { _state: 'CLIENT_BACKEND_TIMEOUT' } + }else{ + result = { _state: 'CLIENT_BACKEND_EXCEPTION' } + } + } else { + result = resultServer + } } console.log('👆 < BackendResult > ️', result, '< /BackendResult > 👆') return result @@ -290,11 +311,11 @@ module.exports = { }, formatMoney(value, decimal) { - return Number(value).toFixed(decimal || 2) + return Number(value || 0).toFixed(decimal || 2) // Number(undefined)===NaN }, formatPercent(value, decimal) { - return `${Number(value * 100).toFixed(decimal || 2)}` + return Number(value * 100 || 0).toFixed(decimal || 2) }, formatDate(date, format) {