qcloud-iotexplorer-common-libs
Advanced tools
Comparing version 3.0.0-alpha.4 to 3.0.0-alpha.5
@@ -9,16 +9,17 @@ "use strict"; | ||
exports.POLLING_TASK_TIMEOUT = 'POLLING_TASK_TIMEOUT'; | ||
function getPollingTask$({ task, checkTaskResult, maxRetryTimes = 10, retryInterval = 1000, ignoreTaskError = true, taskName = '_task', }) { | ||
function getPollingTask$({ task, // 必须是一个promise / async function 否则rxjs出错 | ||
checkTaskResult, maxRetryTimes = 10, retryInterval = 1000, ignoreTaskError = true, taskName = '_task', }) { | ||
let retryTimes = 0; | ||
return (0, rxjs_1.of)(0) | ||
.pipe((0, rxjs_1.exhaustMap)(() => (0, rxjs_1.from)(task())), (0, rxjs_1.tap)((result) => { | ||
logger.info('runTask', `${taskName} result=${result} retry=${(retryTimes += 1)}/${maxRetryTimes}`); | ||
}), (0, rxjs_1.takeWhile)(result => checkTaskResult(result)), (0, rxjs_1.catchError)((err, caught) => { | ||
.pipe((0, rxjs_1.tap)(() => retryTimes += 1), (0, rxjs_1.exhaustMap)(() => (0, rxjs_1.from)(task())), (0, rxjs_1.tap)((result) => { | ||
logger.info('runTask', `${taskName} retry=${(retryTimes)}/${maxRetryTimes}`, { data: { result } }); | ||
}), (0, rxjs_1.takeWhile)(result => checkTaskResult(result) || retryTimes > maxRetryTimes), (0, rxjs_1.catchError)((err, caught) => { | ||
if (ignoreTaskError) { | ||
logger.error({ | ||
event: 'errorTask', | ||
message: `轮询任务错误 ignoreError=${ignoreTaskError}`, | ||
message: `轮询任务错误 ignore=${ignoreTaskError}`, | ||
error: err, | ||
}); | ||
return caught; | ||
} | ||
return caught; | ||
}), (0, rxjs_1.repeat)({ count: maxRetryTimes, delay: retryInterval }), (0, rxjs_1.throwIfEmpty)(() => exports.POLLING_TASK_TIMEOUT), (0, rxjs_1.take)(1)); | ||
@@ -25,0 +26,0 @@ } |
@@ -7,2 +7,3 @@ "use strict"; | ||
*/ | ||
/* eslint-disable */ | ||
const storage = {}; | ||
@@ -12,3 +13,2 @@ exports.promiseBridge = { | ||
if (storage[namespace] && storage[namespace].promise) { | ||
console.warn(`[promiseBridge] ${namespace} already exist`); | ||
return storage[namespace].promise; | ||
@@ -20,4 +20,3 @@ } | ||
storage[namespace].reject = reject; | ||
}) | ||
.then((resp) => { | ||
}).then((resp) => { | ||
this.clearPromise(namespace); | ||
@@ -37,3 +36,2 @@ return resp; | ||
else { | ||
// console.warn(`[promiseBridge] ${namespace} dose not exist`); | ||
this.clearPromise(namespace); | ||
@@ -47,3 +45,2 @@ } | ||
else { | ||
// console.warn(`[promiseBridge] ${namespace} dose not exist`); | ||
this.clearPromise(namespace); | ||
@@ -50,0 +47,0 @@ } |
@@ -5,16 +5,17 @@ import { catchError, exhaustMap, firstValueFrom, from, of, repeat, take, takeWhile, tap, throwIfEmpty, } from 'rxjs'; | ||
export const POLLING_TASK_TIMEOUT = 'POLLING_TASK_TIMEOUT'; | ||
export function getPollingTask$({ task, checkTaskResult, maxRetryTimes = 10, retryInterval = 1000, ignoreTaskError = true, taskName = '_task', }) { | ||
export function getPollingTask$({ task, // 必须是一个promise / async function 否则rxjs出错 | ||
checkTaskResult, maxRetryTimes = 10, retryInterval = 1000, ignoreTaskError = true, taskName = '_task', }) { | ||
let retryTimes = 0; | ||
return of(0) | ||
.pipe(exhaustMap(() => from(task())), tap((result) => { | ||
logger.info('runTask', `${taskName} result=${result} retry=${(retryTimes += 1)}/${maxRetryTimes}`); | ||
}), takeWhile(result => checkTaskResult(result)), catchError((err, caught) => { | ||
.pipe(tap(() => retryTimes += 1), exhaustMap(() => from(task())), tap((result) => { | ||
logger.info('runTask', `${taskName} retry=${(retryTimes)}/${maxRetryTimes}`, { data: { result } }); | ||
}), takeWhile(result => checkTaskResult(result) || retryTimes > maxRetryTimes), catchError((err, caught) => { | ||
if (ignoreTaskError) { | ||
logger.error({ | ||
event: 'errorTask', | ||
message: `轮询任务错误 ignoreError=${ignoreTaskError}`, | ||
message: `轮询任务错误 ignore=${ignoreTaskError}`, | ||
error: err, | ||
}); | ||
return caught; | ||
} | ||
return caught; | ||
}), repeat({ count: maxRetryTimes, delay: retryInterval }), throwIfEmpty(() => POLLING_TASK_TIMEOUT), take(1)); | ||
@@ -21,0 +22,0 @@ } |
/** | ||
* 用于跨页面来注册、销毁Promise | ||
*/ | ||
/* eslint-disable */ | ||
const storage = {}; | ||
@@ -8,3 +9,2 @@ export const promiseBridge = { | ||
if (storage[namespace] && storage[namespace].promise) { | ||
console.warn(`[promiseBridge] ${namespace} already exist`); | ||
return storage[namespace].promise; | ||
@@ -16,4 +16,3 @@ } | ||
storage[namespace].reject = reject; | ||
}) | ||
.then((resp) => { | ||
}).then((resp) => { | ||
this.clearPromise(namespace); | ||
@@ -33,3 +32,2 @@ return resp; | ||
else { | ||
// console.warn(`[promiseBridge] ${namespace} dose not exist`); | ||
this.clearPromise(namespace); | ||
@@ -43,3 +41,2 @@ } | ||
else { | ||
// console.warn(`[promiseBridge] ${namespace} dose not exist`); | ||
this.clearPromise(namespace); | ||
@@ -46,0 +43,0 @@ } |
@@ -11,4 +11,5 @@ import { Observable } from 'rxjs'; | ||
export declare const POLLING_TASK_TIMEOUT = "POLLING_TASK_TIMEOUT"; | ||
export declare function getPollingTask$<T = any>({ task, checkTaskResult, maxRetryTimes, retryInterval, ignoreTaskError, taskName, }: PollingTaskProps<T>): Observable<T>; | ||
export declare function getPollingTask$<T = any>({ task, // 必须是一个promise / async function 否则rxjs出错 | ||
checkTaskResult, maxRetryTimes, retryInterval, ignoreTaskError, taskName, }: PollingTaskProps<T>): Observable<T>; | ||
export declare const pollingTask: (params: PollingTaskProps) => Promise<any>; | ||
export {}; |
export declare const promiseBridge: { | ||
register(namespace: string): any; | ||
triggerResolve(namespace: string, data?: any): void; | ||
triggerReject(namespace: string, error: any): void; | ||
clearPromise(namespace: string): void; | ||
register(namespace: any): any; | ||
triggerResolve(namespace: any, data?: any): void; | ||
triggerReject(namespace: any, error?: any): void; | ||
clearPromise(namespace: any): void; | ||
getAll(): {}; | ||
}; |
{ | ||
"name": "qcloud-iotexplorer-common-libs", | ||
"version": "3.0.0-alpha.4", | ||
"version": "3.0.0-alpha.5", | ||
"description": "腾讯云IOT前端通用工具库", | ||
@@ -30,3 +30,3 @@ "bugs": { | ||
}, | ||
"gitHead": "3d8fcf849c49fc65ab67d9c11138b074aa652947" | ||
"gitHead": "926b2a685001ed0932ba41dfa53d46eb292ba9d5" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1017097
15116