Vuejs2 从回调更新属性

Vuejs2 从回调更新属性,vuejs2,Vuejs2,我正在尝试使用一个库中的函数,它的调用方式如下 convertString(输入、选项、回调) 具有如下所示的简单模板 <template> <textarea v-model="inputText"></textarea> {{ convertedText() }} </template> export default { data () { return { inputText: '' } }, m

我正在尝试使用一个库中的函数,它的调用方式如下

convertString(输入、选项、回调)

具有如下所示的简单模板

<template>
 <textarea v-model="inputText"></textarea>
 {{ convertedText() }}
</template>
export default {
  data () {
    return {
      inputText: ''
    }
  },
  methods: {
    convertTextCallback: function (err, result) {
      if (!err) return result
    },
    convertedText: function () {
      options = ''
      convertString(this.inputText, options, this.convertTextCallback)
    }
  }
}

问题是
convertedText
函数需要返回一个字符串,但该字符串是在回调运行时生成的。如何返回回调生成的字符串。

您可以使用async/await,但是不鼓励以这种方式使用异步调用。我建议使用一个监视程序和另一个数据属性

首先,我相信您提供的设置即使不是异步的,也不会达到您希望的效果。当输入文本为空时,它将在页面加载时调用转换后的文本,然后不会更新,因为它不是计算属性

一个有效的例子:

export default {
  data () {
    return {
      inputText: '',
      result: '',
    }
  },
  methods: {
    convertTextCallback: function (err, result) {
      if (!err) this.result = result
    },
  },
  watch: {
    inputText: function() {
      options = ''
      convertString(this.inputText, options, this.convertTextCallback)
    }
  }
}
然后在你的模板中

<template>
 <textarea v-model="inputText"></textarea>
 {{ result }}
</template>

{{result}}