Computed
Было бы проще использовать computed
вместо convert
метода:
computed: {
converted() {
// do stuff with `this.coin_amount`
// return the converted value
}
}
Затем в вашем шаблоне показать это вычисляемое свойство:
<span><strong>Value:</strong>{{ converted }}</span>
РЕДАКТИРОВАТЬ ДЛЯ ASYN C:
Но теперь вы отредактировали свой вопрос, чтобы показать код преобразования, и он асин c.
Опция 1
Поскольку вычисляемые значения только syn c, чтобы продолжить использовать его asyn c, вам потребуется решение типа vue -asyn c -computed . Вместо этого я бы использовал следующую опцию, но вот как будет выглядеть ваш код при использовании этого пакета с вашим конвертирующим кодом:
asyncComputed: {
async converted() {
const result = await axios({ method: "GET", url: "https://api.coinmarketcap.com/v1/ticker/" + this.input.cryptocurrency + "/" });
return this.coin_amount / result.data[0].price_usd;
}
}
Опция 2
Или вы могли бы используйте watch
, которые могут быть асин c. В этом примере converted
- это переменная данных, установленная часами, а не вычисленная:
data() {
coin_amount: null,
converted: null,
// ...
},
watch: {
async coin_amount(val) {
const result = await axios({ method: "GET", url: "https://api.coinmarketcap.com/v1/ticker/" + this.input.cryptocurrency + "/" });
this.converted = this.coin_amount / result.data[0].price_usd;
}
}