@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.
Files changed (2) hide show
  1. package/dist/UtilHttp.js +22 -12
  2. 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 (e) {
189
- UtilLogger_1.SLogger.warn(`json accept 接收反馈错误:${e}`, UtilFunctions_1.UtilFunc.stringifyJToken(result, { compress: true, space: 2 }));
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} 接收反馈超时: ${timeout} ms`);
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
- resolve(undefined);
397
+ finallyResolve(undefined);
387
398
  });
388
399
  });
389
400
  res.on('error', err => {
390
401
  UtilLogger_1.SLogger.warn(`${flagName} 接收反馈错误:`, err);
391
- resolve(undefined);
402
+ finallyResolve(undefined);
392
403
  });
393
404
  res.on('end', async () => {
394
405
  await dataPromise;
395
- resolve({
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
- resolve(undefined);
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} 发送请求超时: ${timeout} ms`);
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
- resolve(undefined);
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
- resolve(undefined);
438
+ finallyResolve(undefined);
429
439
  }
430
440
  });
431
441
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zwa73/utils",
3
- "version": "1.0.231",
3
+ "version": "1.0.232",
4
4
  "description": "my utils",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {