2017-05-28 213 views
0

我无法使用此函数返回值,因为它是空的。如何在axios之外设置变量获取

getNameById (id) { 

    var name = '' 

    axios.get('/names/?ids=' + id) 
     .then(response => { 
     this.response = response.data 
     name = this.response[0].name 
     }) 
     .catch(e => { 
     this.errors.push(e) 
     }) 
    // Is empty 
    console.log('Name ' + name) 
    return name 
    } 

如何访问“then”中的name变量并返回它?

+0

是的,它不会从我回到 – John

回答

2

您应该返回承诺

getNameById (id) { 
    return axios.get('/names/?ids=' + id) 
     .then(response => { 
     this.response = response.data 
     return this.response[0].name 
     }) 
    } 

,并使用它:

getNameById(someId) 
    .then(data => { 
    // here you can access the data 
    }); 
+0

正确的做法(+1)! @OP了解更多信息,请点击此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then – Christos

+0

谢谢@Christos! – Ioan

+0

欢迎你! – Christos