东莞市营销网站建设,深圳专业网站建设制作价格,windows同步wordpress,如何注册申请chn网站axios同步获取数据 Axios介绍问题代码修改 总结 Axios介绍 Axios 是一个基于 promise 网络请求库#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 X… axios同步获取数据 Axios介绍问题代码修改 总结 Axios介绍 Axios 是一个基于 promise 网络请求库作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 promise是处理异步调用的对象方法 问题 在axios中调用是异步的这就会出现需要的数据不能实时获取导致程序出错。 在写代码时发现了异步调用出现的一些问题
import axios from axiosfunction getarticle(){return axios.get(http://localhost:8080/article/getAll).then(result {return result.data}).catch(err {console.log(err)})
}const articleGetAll function(){let data getarticle()articlelist.value data;
};articleGetAll()
console.log(articlelist)上面的代码是异步调用的导致拿到的数据没有解构还是promise对象造成了显示上的错误
代码修改 要让代码变成同步的需要使用await(写在调用异步函数的前面, 这个关键字会一直等待返回的结果)。 async关键字和await配套使用在使用到await的函数声明前要加上async关键字 async函数返回的是一个Promise对象如果在函数中return一个值async内部会调用Promise.resolve()帮你封装成一个Promise对象如果async函数内部抛出错误内部就会调用Promise.reject()返回Promise对象在函数的外层不能用await关键字的时候我们需要用.then()来处理Promise对象 在调用axios的地方加上await关键字同时在对应函数上加async。但是这样的结果还是不对的因为async函数返回的值是promise这样得到的值还是promise对象 既然又变成了一个异步函数那么就在调用时再套娃一次加上await 成功显示 成功原因分析
总结
在使用异步变同步的时候尽量不要使用async的返回值因为返回值是promise对象 使用时应该在sync函数的内部调用await的地方等待数据解构结构完成就能得到原始数据再使用原始数据进行操作