@zwa73/utils 1.0.231 → 1.0.232
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/UtilHttp.js +22 -12
- package/package.json +1 -1
package/dist/UtilHttp.js
CHANGED
|
@@ -185,8 +185,8 @@ class UtilHttp {
|
|
|
185
185
|
UtilLogger_1.SLogger.http(`json accept 接受信息 data:`, UtilFunctions_1.UtilFunc.stringifyJToken(obj, { compress: true, space: 2 }), `result:`, UtilFunctions_1.UtilFunc.stringifyJToken(rest, { compress: true, space: 2 }));
|
|
186
186
|
return { ...rest, data: obj };
|
|
187
187
|
}
|
|
188
|
-
catch (
|
|
189
|
-
UtilLogger_1.SLogger.warn(`json accept
|
|
188
|
+
catch (err) {
|
|
189
|
+
UtilLogger_1.SLogger.warn(`json accept 接收反馈错误:`, err, UtilFunctions_1.UtilFunc.stringifyJToken(result, { compress: true, space: 2 }));
|
|
190
190
|
return { ...result, raw: data, data: null };
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -362,18 +362,29 @@ class UtilHttp {
|
|
|
362
362
|
*/
|
|
363
363
|
static async request(option, proc, reduce, init) {
|
|
364
364
|
const { protocol, timeout, ...baseReqOpt } = option;
|
|
365
|
+
const plusTimeout = (timeout ?? 0) + 1000;
|
|
365
366
|
const hasTimeLimit = (timeout ? timeout >= 10_000 : false);
|
|
366
367
|
const flagName = `UtilCom.request ${protocol}${baseReqOpt.method} ${UtilFunctions_1.UtilFunc.genUUID()}`;
|
|
367
368
|
const reduceQueue = new js_utils_1.PromiseQueue();
|
|
368
369
|
let dataPromise = null;
|
|
369
370
|
return new Promise(async (resolve, rejecte) => {
|
|
371
|
+
const finallyTimeout = hasTimeLimit
|
|
372
|
+
? setTimeout(() => {
|
|
373
|
+
UtilLogger_1.SLogger.warn(`${flagName} finallyTimeout 超时 ${timeout} ms, 终止请求`);
|
|
374
|
+
req.destroy();
|
|
375
|
+
resolve(undefined);
|
|
376
|
+
}, plusTimeout)
|
|
377
|
+
: undefined;
|
|
378
|
+
const finallyResolve = (t) => {
|
|
379
|
+
clearTimeout(finallyTimeout);
|
|
380
|
+
resolve(t);
|
|
381
|
+
};
|
|
370
382
|
const resFunc = (res) => {
|
|
371
383
|
try {
|
|
372
384
|
//请求超时
|
|
373
385
|
if (hasTimeLimit) {
|
|
374
386
|
res.setTimeout(timeout, () => {
|
|
375
|
-
UtilLogger_1.SLogger.warn(`${flagName}
|
|
376
|
-
res.destroy();
|
|
387
|
+
UtilLogger_1.SLogger.warn(`${flagName} http.response 触发 ${timeout} ms 超时, 继续挂起等待`);
|
|
377
388
|
});
|
|
378
389
|
}
|
|
379
390
|
let mergedata = init;
|
|
@@ -383,16 +394,16 @@ class UtilHttp {
|
|
|
383
394
|
.enqueue(async () => mergedata = await reduce(mergedata, chunk))
|
|
384
395
|
.catch(err => {
|
|
385
396
|
UtilLogger_1.SLogger.error(`${flagName} reduce函数错误:`, err, `chunk:${chunk}\nmergedata:`, mergedata);
|
|
386
|
-
|
|
397
|
+
finallyResolve(undefined);
|
|
387
398
|
});
|
|
388
399
|
});
|
|
389
400
|
res.on('error', err => {
|
|
390
401
|
UtilLogger_1.SLogger.warn(`${flagName} 接收反馈错误:`, err);
|
|
391
|
-
|
|
402
|
+
finallyResolve(undefined);
|
|
392
403
|
});
|
|
393
404
|
res.on('end', async () => {
|
|
394
405
|
await dataPromise;
|
|
395
|
-
|
|
406
|
+
finallyResolve({
|
|
396
407
|
headers: res.headers,
|
|
397
408
|
statusCode: res.statusCode,
|
|
398
409
|
data: mergedata,
|
|
@@ -401,7 +412,7 @@ class UtilHttp {
|
|
|
401
412
|
}
|
|
402
413
|
catch (err) {
|
|
403
414
|
UtilLogger_1.SLogger.warn(`${flagName} 未知错误:`, err);
|
|
404
|
-
|
|
415
|
+
finallyResolve(undefined);
|
|
405
416
|
return;
|
|
406
417
|
}
|
|
407
418
|
};
|
|
@@ -412,20 +423,19 @@ class UtilHttp {
|
|
|
412
423
|
//请求超时
|
|
413
424
|
if (hasTimeLimit) {
|
|
414
425
|
req.setTimeout(timeout, () => {
|
|
415
|
-
UtilLogger_1.SLogger.warn(`${flagName}
|
|
416
|
-
req.destroy();
|
|
426
|
+
UtilLogger_1.SLogger.warn(`${flagName} http.request 触发 ${timeout} ms 超时, 继续挂起等待`);
|
|
417
427
|
});
|
|
418
428
|
}
|
|
419
429
|
req.on('error', err => {
|
|
420
430
|
UtilLogger_1.SLogger.warn(`${flagName} 发送请求错误:`, err);
|
|
421
|
-
|
|
431
|
+
finallyResolve(undefined);
|
|
422
432
|
});
|
|
423
433
|
try {
|
|
424
434
|
await proc(req);
|
|
425
435
|
}
|
|
426
436
|
catch (err) {
|
|
427
437
|
UtilLogger_1.SLogger.error(`${flagName} proc函数错误:`, err);
|
|
428
|
-
|
|
438
|
+
finallyResolve(undefined);
|
|
429
439
|
}
|
|
430
440
|
});
|
|
431
441
|
}
|