• 方法一:
  • async和await要一起用
async res => {
 const result = await getPanelData('', this.from_uid);
 }
async function test() {
    let result = await getPanelData(params); //await 关键字只能放到async 函数里面
    console.log(result);
} 

async 会使得test()函数得到一个promise对象
不通过await,则通过then获取 test().then(res=>{})

解释:
async使得test()函数里面会return一个promise对象
await是请等待getPanelData()函数执行完毕后再将promise对象里面的值赋值给result,再执行打印
getPanelData(params)是发送请求,返回的是一个promise对象
  1. async 和 await 基于 promise 的。 使用 async 的函数将会始终返回一个 promise 对象。
  2. await 关键字只能放到async 函数里面
  3. 在使用 await 的时候我们暂停了函数,而非整段代码。
  4. async 和 await 是非阻塞的。 你仍然可以使用 Promise 例如 Promise.all()。
    在这里插入图片描述
<script>
function displayDate(){
	async function time() {
		var a=await 'hello world'
		console.log(520,a);
    return a;
}
	
console.log( time().then(res=>{ 
	console.log(res);
}));
console.log('虽然在后面,但是我先执行');
}
// 首先 执行time(),创建第一个宏任务,返回一个promise对象,第一次打印输出
// 遇到 then,创建第二个宏任务
// 第二次打印输出:虽然在后面,但是我先执行,所有微任务执行完毕,重新执行宏任务
// 第三次打印输出第一个宏任务中的a,执行完毕,无微任务后
// 第四次打印输出第二个宏任务

</script>
  • 方法二
    发送请求后,用then去获取promise对象的值
    在vue中,一般使用axios去发送请求,axios是基于promise对象封装的ajax的第三方库,所有axios里面包含了promise对象。
    let result=promise.get(url),得到的result就是一个promise对象的返回值,需要在then中获取,只需要result.then(res=>{
    console.log(res) // res为promise中的值
    })
const result =  getPanelData('', this.from_uid).then(function (result) { console.log(result) })`

具体操作:

推荐!!点击详细解释

点击此处

具体原因:

点击看看

还不懂?点击这里

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐