Для вашего вопроса вам просто нужно поставить async
перед вашей функцией
exports.getScore = async (storeId) => { /* snip */ }
Но на самом деле в вашем коде есть проблема
Во-первых, вы можете передать обещание в решении исполнителя Promise
new Promise(resolve => {
// This will work
resolve(anotherPromise)
})
Однако, если у вас уже есть обещание, вы можете просто вернуть его напрямую
Если вы хотите убедиться, что это родное обещание или вы не уверены, что это обещание или нет.
Оберните это в Promise.resolve
Promise.resolve(anotherPromiseOrValue)
Таким образом, ваш код может измениться на:
exports.getScore = (storeId) => this.getScore('day', storeId)
И оно также равно:
exports.getScore = this.getScore.bind(this, 'day')
Но есть и другая проблема: что за this
здесь?
Если вы извлекаете эту функцию из методов Vue, то this
, вероятно, является экземпляром Vue.
Тогда я боюсь, что приведенный выше код не будет работать так, как вы ожидали.
Поэтому я рекомендую вам просто использовать getScore
в хуке жизненного цикла вашего компонента, например mounted
Например:
mounted () {
this.getScore('day', this.storeId).then(score => {
this.score = score
})
}
или с асинхронным ожиданием
async mounted () {
this.score = await this.getScore('day', this.storeId)
}