Socket
Socket
Sign inDemoInstall

qcloud-iotexplorer-common-libs

Package Overview
Dependencies
Maintainers
3
Versions
87
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

qcloud-iotexplorer-common-libs - npm Package Compare versions

Comparing version 3.0.0-alpha.4 to 3.0.0-alpha.5

13

dist/cjs/libs/pollingTask.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc