<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <!-- 异步函数是基于 promise之上的一种新的异步结果方案 把异步的写法变成同步的写法 异步请求(接口, 成功回调, 失败回调) 异步请求(接口).then(成功函数).catch(失败函数) async function getData () { try { const 结果1 = await 异步请求(接口) const 结果2 = await 异步请求(接口) 对结果进行处理 } catch (err) { // 对错误信息的处理 } } getData() dispatch 获取action里的结果 在action里函数里返回一个Promise对象 在dispatch里可以用.then进行下一步的操作 action () { return new Promise((resolve, reject) => { axios.get('接口').then(res => { // 对res进行处理 resolve() }).catch(() => { reject() }) }) } this.$store.dispatch('action').then(() => { }).catch(() => { }) --> </body> <script src="../js/vue.js"></script> <script> function get (url) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.open('get', 'url', true); xhr.send(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status ===200 ) { // callback && callback(JSON.parse(xhr.responseText)) // 上面的这种写法相当于 // if (callback) { // cakllback() // } resolve(JSON.parse(xhr.responseText));//相当于回调函数 .then里面的函数 } else if (xhr.readyState === 4 && (xhr.status > 300 || xhr.status < 200) ) { reject(); } } }) } //异步的请求 同步的写法 async function getData () { try { //对错误进行捕获 const res1 = await get('http://localhost/demo.php?demo1'); const res2 = await get('http://localhost/demo.php?demo2'); } catch (err) { console.log(err) } } getData() //promise对象 // const p = new Promise((resolve, reject) => { // resolve(); // }); // console.log(p); </script> </html>