From a4d779258c2114381a6265a96b77aeb2f81cdd7a Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 25 Jan 2023 20:42:05 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E5=86=85=E6=A0=B8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=B0=83=E5=BA=A6=E6=9C=BA=E5=88=B6=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E7=A8=B3=E5=AE=9A=E6=80=A7=20https://github.com/siyua?= =?UTF-8?q?n-note/siyuan/issues/7113?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/block.go | 15 +++++++++++++++ kernel/model/block.go | 7 +++---- kernel/model/tree.go | 9 ++++++--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/kernel/api/block.go b/kernel/api/block.go index 1ee9b5d40..e355c3b85 100644 --- a/kernel/api/block.go +++ b/kernel/api/block.go @@ -174,6 +174,11 @@ func checkBlockExist(c *gin.Context) { ret.Data = id return } + if errors.Is(err, model.ErrIndexing) { + ret.Code = 3 + ret.Data = id + return + } ret.Data = nil != b } @@ -377,6 +382,11 @@ func getBlockInfo(c *gin.Context) { ret.Data = id return } + if errors.Is(err, model.ErrIndexing) { + ret.Code = 3 + ret.Data = id + return + } if nil == block { ret.Code = -1 ret.Msg = fmt.Sprintf(model.Conf.Language(15), id) @@ -403,6 +413,11 @@ func getBlockInfo(c *gin.Context) { ret.Data = id return } + if errors.Is(err, model.ErrIndexing) { + ret.Code = 3 + ret.Data = id + return + } rootTitle := root.IAL["title"] rootTitle = html.UnescapeString(rootTitle) ret.Data = map[string]string{ diff --git a/kernel/model/block.go b/kernel/model/block.go index c74528b38..774ea05cf 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -393,11 +393,10 @@ func getBlock(id string) (ret *Block, err error) { tree, err := loadTreeByBlockID(id) if nil != err { - waitForIndexing() - tree, err = loadTreeByBlockID(id) - if nil != err { - return + if indexing { + err = ErrIndexing } + return } node := treenode.GetNodeInTree(tree, id) diff --git a/kernel/model/tree.go b/kernel/model/tree.go index e80c43316..18fbe81bc 100644 --- a/kernel/model/tree.go +++ b/kernel/model/tree.go @@ -138,9 +138,12 @@ func loadTree(localPath string, luteEngine *lute.Lute) (ret *parse.Tree, err err return } -var ErrBoxNotFound = errors.New("notebook not found") -var ErrBlockNotFound = errors.New("block not found") -var ErrTreeNotFound = errors.New("tree not found") +var ( + ErrBoxNotFound = errors.New("notebook not found") + ErrBlockNotFound = errors.New("block not found") + ErrTreeNotFound = errors.New("tree not found") + ErrIndexing = errors.New("indexing") +) func loadTreeByBlockID(id string) (ret *parse.Tree, err error) { if "" == id {