首页 > 解决方案 > 方法被多次调用,但应该被调用一次。不明白为什么?

问题描述

我正在尝试测试,但我遇到了一个我找不到解决方案的问题,这是我的测试。我知道这不是很好,但我需要解决方案。

这是我的方法:

import { Meteor } from 'meteor/meteor'
import { ValidatedMethod } from 'meteor/mdg:validated-method'
import { CallPromiseMixin } from 'meteor/didericis:callpromise-mixin'

import Journal from '../journals/journals'
import JournalDetails from '../journals/journal-details'

export const journalMigrateTotDecimal = new ValidatedMethod({
  name: 'app.journalMigrateTotDecimal',
  mixins: [CallPromiseMixin],
  validate: null,
  async run() {
    if (Meteor.isServer) {
      let res
      console.log('start....');
      let journals = await Journal.find().lean()
      res = await Journal.deleteMany({})
      res = await Journal.insertMany(journals)
      console.log('done journal!');
      let journalDetails = await JournalDetails.find().lean()
      res = await JournalDetails.deleteMany({})
      res = await JournalDetails.insertMany(journalDetails)
      console.log('done journal details!');
    return res
   }
  },
})

致电客户:

<ElButton type="primary" @click="migrateJournalData">
      Journal
</ElButton>
methods: {
 migrateJournalData() {
  this.loading = true
  journalMigrateTotDecimal
    .callPromise()
    .then(res => {
      this.loading = false
      console.log('res', res)
    })
    .catch(err => {
      this.loading = false
      console.log('err', err)
    })
  },
},

问题是该方法被多次调用,我不知道为什么。我不知道如何解决它。

标签: vue.jsmeteormongoose

解决方案


推荐阅读