2017-07-29 179 views
0

我将如何制作JavaScript对象getter返回承诺的返回值?JavaScript getter返回承诺值

查看下面的代码片段,了解我正在努力实现的目标。

var my_object = { 
 
    get latest() { 
 
     return axios.get('https://jsonplaceholder.typicode.com/posts/1') 
 
      .then(function (response) { 
 
       return response.data; 
 
      }); 
 
    } 
 
}; 
 

 
console.log(my_object.latest); // Promise
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.16.2/axios.min.js"></script>

+0

你是问如何调用异步函数(axios.get),并同步返回值?想一想,看看它有多不可能是 –

回答

3

尝试my_object.latest.then(x => console.log(x))

var my_object = { 
 
\t get latest() { 
 
    \t return axios.get('https://jsonplaceholder.typicode.com/posts/1').then(function (response) { 
 
    \t return response.data; 
 
    }); 
 
\t } 
 
} 
 

 
my_object.latest.then(x => console.log(x));
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.16.2/axios.min.js"></script>

+2

您可以简单地这样做:'my_object.latest.then(console.log)' – fubar

+0

好的一点,谢谢) –

+0

从“返回承诺的返回值”开始,我认为OP希望'my_object.latest'等于Promise的返回值,而不是实际的Promise(尽管它不完全清楚)。在这种情况下,唯一的方法是使用async/await。 – GTF