我有一个表示搜索功能的类。 它有一个名为“Execute search”的类,该类根据有关可以在数据库中搜索的属性的信息接受参数:
const axios = require('axios').default
class Search {
executeSearch (addressLine1, City, Country, Postcode, AskingPrice) {
axios.get('http://localhost:5000/property/findAny/' + addressLine1 + '/' + City + '/' + Country + '/' + Postcode + '/' + AskingPrice + '/')
.then(res => {
console.log(res)
return res
})
.catch(err => {
return err
})
}
}
module.exports = Search
在Vue组件中,我有以下代码:
import Search from '../js/search'
const search = new Search()
export default {
name: 'Home',
data() {
return {
searchResult: Object
}
},
mounted(){
this.searchResult = search.executeSearch('test43167', ' ', ' ', ' ', ' ')
console.log(search.executeSearch('test43167', ' ', ' ', ' ', ' '))
}
}
其中控制台日志似乎总是在vue组件内部输出未定义的内容,但axios函数中的控制台日志具有预期的数据。
我做错了什么?
通常情况下,我认为应该使用return res
而不是使用return promise.resolve(res)
(这是正确的),但是如果在返回响应之前没有对其进行任何操作,那么只需返回axios
请求即可:
class Search {
executeSearch (addressLine1, City, Country, Postcode, AskingPrice) {
return axios.get('http://localhost:5000/property/findAny/' + addressLine1 + '/' + City + '/' + Country + '/' + Postcode + '/' + AskingPrice + '/')
}
}
然后在使用此API请求时,可以将SearchResult
应用到中的
Res
。然后
mounted(){
search.executeSearch('test43167', ' ', ' ', ' ', ' ')
.then(res => {
this.searchResult = res
})
.catch (err => {
// handle a failed request
})
}