【发布时间】:2020-05-21 13:58:16
【问题描述】:
当我在浏览器中访问 https://jsonplaceholder.typicode.com/todos?_limit=1 时,我得到:
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
]
我现在正在尝试使用带有上述 URL 的 vue.js 中的 axios 将简单的 http GET 请求的结果(和打印)存储在一个变量中:
const result = axios.get('https://jsonplaceholder.typicode.com/todos?_limit=1');
console.log("result is = " + result)
console.log("result.title is = " + result.title)
但上面给出了以下输出:
App.vue?234e:59 result is = [object Promise]
App.vue?234e:60 result.title is = undefined
是否可以在不处理 promisesin vue.js 的情况下从 http get 请求(如 curl)打印 json 友好的结果?
更新:
根据以下答案,我现在在 App.vue 文件中尝试了以下操作
<script>
import axios from 'axios';
export default {
name: 'app',
components: {
AddTodo
},
data(){
return {
todos: []
}
},
methods: {
// not allowed to use function keyword here
async printJson(){
let result = await axios.get('https://jsonplaceholder.typicode.com/todos?_limit=1');
console.log("result is = " + result)
console.log("result.title is = " + result.title)
},
addTodo(newTodo) {
this.printJson()
}
}
}
</script>
但这只是给出:
App.vue?234e:50 result is = [object Object]
App.vue?234e:51 result.title is = undefined
【问题讨论】:
-
如果你想避免链接承诺保持美观和可读的代码。你可以看看 JS 上的 async/await。即使直接使用 JS API 进行请求,您也必须使用回调或承诺。它是异步的
标签: javascript vue.js axios