From 68d5f8161c08925f7bdad833dca391fa30eff89b Mon Sep 17 00:00:00 2001 From: kyle <573984425@qq.com> Date: Sun, 24 Apr 2022 10:31:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=8E=B7=E5=8F=96=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E7=BB=93=E6=9E=9C=E6=9C=89=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jd/platform/async/wrapper/WorkerWrapper.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/asyncTool-core/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java b/asyncTool-core/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java index 42785b5..c0145ab 100755 --- a/asyncTool-core/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java +++ b/asyncTool-core/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java @@ -268,6 +268,17 @@ public abstract class WorkerWrapper { final Consumer __function__callbackResult = success -> { WorkResult _workResult = getWorkResult(); + /* + 如果不循环拿,则很容易拿到空值(用户有可能拿到值,也有可能拿到null), + 但如果一定要空值的话,那么尝试25次之后就允许, + 这是个魔法值,如果有更合适的设计请修改这里。 + 比如将getWorkResult()方法的调用交给用户, + 但用户必须明确知道会有这种情况发生 + */ + int count = 25; + while (_workResult.getResultState() == ResultState.DEFAULT && count-- > 0) { + _workResult = getWorkResult(); + } try { callback.result(success, param, _workResult); } catch (Exception e) { -- Gitee