vue获取promise中的值⽅法⼀:
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 的时候我们暂停了函数,⽽⾮整段代码。
await和async使用方法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 (url),得到的result就是⼀个promise对象的返回值,需要在then中获取,只需要result.then(res=>{ console.log(res) // res为promise中的值
})
const result = getPanelData('', this.from_uid).then(function (result) { console.log(result) })`
具体操作:
点击
具体原因:
点击
还不懂?点击
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论