diff --git a/apps/core/src/modules/note/note.controller.ts b/apps/core/src/modules/note/note.controller.ts index 20732673..365cfccd 100644 --- a/apps/core/src/modules/note/note.controller.ts +++ b/apps/core/src/modules/note/note.controller.ts @@ -156,7 +156,8 @@ export class NoteController { @Put('/:id') @Auth() async modify(@Body() body: NoteModel, @Param() params: MongoIdDto) { - return await this.noteService.updateById(params.id, body) + await this.noteService.updateById(params.id, body) + return this.noteService.findOneByIdOrNid(params.id) } @Patch('/:id') diff --git a/apps/core/src/modules/page/page.service.ts b/apps/core/src/modules/page/page.service.ts index c1e487b5..43f086ea 100644 --- a/apps/core/src/modules/page/page.service.ts +++ b/apps/core/src/modules/page/page.service.ts @@ -48,12 +48,11 @@ export class PageService { this.imageService.saveImageDimensionsFromMarkdownText( doc.text, res.images, - (images) => { + async (images) => { res.images = images - return res.save().then(() => { - this.eventManager.broadcast(BusinessEvents.PAGE_UPDATE, res, { - scope: EventScope.TO_SYSTEM, - }) + await res.save() + this.eventManager.broadcast(BusinessEvents.PAGE_UPDATE, res, { + scope: EventScope.TO_SYSTEM, }) }, ) diff --git a/apps/core/src/modules/post/post.service.ts b/apps/core/src/modules/post/post.service.ts index d5a3b591..b1dc4db5 100644 --- a/apps/core/src/modules/post/post.service.ts +++ b/apps/core/src/modules/post/post.service.ts @@ -82,11 +82,13 @@ export class PostService { }) const doc = newPost.toJSON() + const cloned = { ...doc } // 双向关联 await this.relatedEachOther(doc, relatedIds) scheduleManager.schedule(async () => { + const doc = cloned await Promise.all([ this.imageService.saveImageDimensionsFromMarkdownText( doc.text, diff --git a/apps/core/src/processors/helper/helper.image.service.ts b/apps/core/src/processors/helper/helper.image.service.ts index 5c46a657..891a349d 100644 --- a/apps/core/src/processors/helper/helper.image.service.ts +++ b/apps/core/src/processors/helper/helper.image.service.ts @@ -38,8 +38,9 @@ export class ImageService implements OnModuleInit { const result = [] as ImageModel[] const oldImagesMap = new Map( - (originImages ?? []).map((image) => [image.src, image]), + (originImages ?? []).map((image) => [image.src, { ...image }]), ) + const task = [] as Promise[] for (const src of newImages) { const originImage = oldImagesMap.get(src)