vue的promise机制,promise在vue中的用法

  vue的promise机制,promise在vue中的用法

  本文主要介绍了如何在vue中处理承诺的退货结果,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。

  

目录

  返回的结果是承诺的处理。对承诺的一些理解。1.promise是一种异步解决方案。2 .异步等待

  

返回结果是promise的处理

  调用element-ui中提供的方法是经常返回结果类型object是promise,

  如果一个函数调用的结果被打印出来并返回promise,那么它将立即用saync和await进行优化,async将放在方法名的前面,await将放在方法中。

  

对promise的一些理解

  

1.promise是一种异步解决方案

  ajax异步请求数据时,我们无法知道数据返回的具体事件,所以过去只能给ajax封装的方法传递一个回调函数,当ajax异步请求完成时,执行回调函数。承诺对象接受两个参数,resolve和reject。当一个异步动作发生时,promise对象会通过resolve来解析动作的成功,reject会捕捉动作的异常。通过new promise()执行下一步的Promise对象。然后()。axios是一个基于浏览器和node.js的HTTP客户端.也就是说,在使用axios进行请求时,不可避免的是promisePromise构造函数的参数是一个函数,函数中的代码是异步的,即Promise内部的操作和Promise()外部的操作是异步‘同时’进行的。Promise中函数的第一个参数是回调函数,resolve用于触发then中的代码,第二个参数是回调函数,reject用于触发catch中的代码,抛出新的Error();捕捉也可以被触发,

  Resolve和reject是两个回调函数。调用resolve将触发then,而reject将触发catchscript。

  新承诺((解决,拒绝)={

  setTimeout(()={

  //成功时调用resolve

  解决(“成功数据”)

  //失败时调用拒绝

  拒绝(“错误消息”)

  }, 1000)

  }).然后((数据)={

  //处理成功后的逻辑

  console.log(数据);//此数据是接收到的解析参数-

  }).catch((err)={

  console . log(err);

  })

  /脚本

  在一个承诺链中,只要有一个承诺被拒绝,这个承诺链就会被破坏,拒绝后的承诺不会再被执行,但是。catch方法将被直接调用。p1()。然后(p2)。然后(p3)。然后(函数(数据){

  console . log( data: data );

  })。catch(函数(错误){

  console . log( error: error );

  });

  函数p1() {

  返回新承诺(功能(解决,拒绝){

  console.log(p1已解析);

  解决(123);

  });

  }

  函数p2() {

  返回新承诺(功能(解决,拒绝){

  console.log(p2被拒绝);

  拒绝(456);

  });

  }

  函数p3() {

  返回新承诺(功能(解决,拒绝){

  console.log(p3已解析);

  解决(789);

  });

  }//执行结果p1 resolvedp2 rejectederror: 456

  

2.async await

  Promise构造函数的参数是一个函数,函数内部的代码是异步的,即Promise内部的操作和Promise()外部的操作是异步‘同时’进行的。另外,只要在函数前面加上async关键字,也可以表示该函数是异步的。

  async关键字实际上是由Promise实现的。如果在异步函数中返回一个值,那么在调用该函数时,会在内部调用Promise.solve()方法将其转换为一个Promise对象作为返回,但是如果超时函数在内部抛出一个错误,那么会调用Promise.reject()返回一个promise对象。如果一个函数调用一个异步函数(比如primise inside),那么这个函数应该用async来修饰。

  Await的意思是“等待”,修改返回promise对象的表达式。请注意,await关键字只能放在异步函数中。

  函数doubleAfter2seconds(数字){

  返回新承诺((解决,拒绝)={

  setTimeout(()={

  解析(2 *数量)

  }, 2000);

  } )

  }//编写一个异步函数,这样就可以使用await关键字。放置在await之后的是一个返回promise对象的表达式,因此它后面可以跟有doubleAfter2seconds函数的调用。

  异步函数testResult() {

  let result=wait double after 2 seconds(30);

  console.log(结果);

  }

  Await等待下面的promise对象完成执行,然后获取promise resolve的值并返回它。显然await可以修饰axios请求,并在继续之前等待结果,例如:

  异步getUserList(){

  const {data: res}=等待此消息。$http.get(users ,{

  params: this.queryInfo

  })

  //console.log(res)

  if (res.meta.status!==200)还这个。$ message.error(未能获取用户列表!)

  this.userlist=res.data.users

  this . total=RES . datatotal

  }

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: