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 的时候我们暂停了函数,而非整段代码。
  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) })`

具体操作:

推荐!!点击详细解释

点击此处

具体原因:

点击看看

还不懂?点击这里

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 要在Vue获取Promise的结果,可以使用async/await或者.then()方法。如果你使用async/await,你可以在Vue的方法使用await关键字来等待Promise的结果,然后将结果赋给一个变量。例如,在Vue的方法,你可以这样获取Promise的结果: async getData() { try { const result = await this.loadData(); console.log(result); } catch (error) { console.error(error); } } 如果你使用.then()方法,你可以在Vue的方法使用.then()来处理Promise的结果。例如,在Vue的方法,你可以这样获取Promise的结果: getData() { this.loadData().then(result => { console.log(result); }).catch(error => { console.error(error); }); } 无论你选择使用async/await还是.then()方法,都可以在Vue获取Promise的结果。 #### 引用[.reference_title] - *1* *3* [Vue s-tableloadData的使用以及返回[[PromiseResult]]后获取](https://blog.csdn.net/weixin_45680024/article/details/126875311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue上写一个全局的请求函数,将响应的数据return出函数。会得到Promise格式,响应的数据存放到[...](https://blog.csdn.net/weixin_46371752/article/details/123105556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值