Vue中Promise的异步处理机制,如何确保数据请求的稳定性与可靠性?

2026-04-02 12:011阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计780个文字,预计阅读时间需要4分钟。

Vue中Promise的异步处理机制,如何确保数据请求的稳定性与可靠性?

Promise 是一种异步解决方案。由于 AJAX 异步请求方式下,在请求数据时,我们无法知道数据具体返回的事件,因此只能通过将一个 callback 函数传递给 AJAX 封装的方法,当 AJAX 异步请求完成时,执行该 callback 函数。

1.promise是一种异步解决方案。由于ajax异步方式请求数据时,我们不能知道数据具体回来的事件,所以过去只能将一个callback函数传递给ajax封装的方法,当ajax异步请求完成时,执行callback函数。promise对象接受resolve和reject两个参数,当一个异步动作发生时,promise对象会通过resolve完成对动作成功进行解析,rej

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

  • 由于ajax异步方式请求数据时,我们不能知道数据具体回来的事件,所以过去只能将一个callback函数传递给ajax封装的方法,当ajax异步请求完成时,执行callback函数。
  • promise对象接受resolve和reject两个参数,当一个异步动作发生时,promise对象会通过resolve完成对动作成功进行解析,reject会捕获这个动作的异常。一个promise对象,通过new Promise().then()执行下一步骤操作。
  • axios is a promise based HTTP client for the browser and node.js。也就是说,使用axios发出请求,难免涉及promise

Promise构造函数的参数是一个函数,函数里面的代码是异步的,即Promise里面的操作,和Promise()外面的操作时异步"同时"进行的。Promise中的函数的第一个参数是回调函数,resolve用来触发then里面的代码,第二个参数是回调函数,reject用来触发catch中的代码,throw new Error();也可以触发catch,

  • resolve和reject是两个回调函数,调用resolve会触发then,reject会触发catch
  
  • 在一个promise链中,只要任何一个promise被reject,promise链就被破坏了,reject之后的promise都不会再执行,而是直接调用.catch方法。
p1().then(p2).then(p3) .then(function(data) { console.log('data: ' + data); }) .catch(function(error) { console.log('error: ' + error); }); function p1() { return new Promise(function(resolve, reject) { console.log('p1 resolved'); resolve(123); });} function p2() { return new Promise(function(resolve, reject) { console.log('p2 rejected'); reject(456); });} function p3() { return new Promise(function(resolve, reject) { console.log('p3 resolved'); resolve(789); });}// 执行结果p1 resolvedp2 rejectederror: 456

  

2. async await

Promise构造函数的参数是一个函数,函数里面的代码是异步的,即Promise里面的操作,和Promise()外面的操作时异步"同时"进行的。此外,只要在函数前面加上async 关键字,也可以指明函数是异步的。

Vue中Promise的异步处理机制,如何确保数据请求的稳定性与可靠性?

async关键字实际是通过Promise实现,如果async 函数中有返回一个值 ,当调用该函数时,内部会调用Promise.solve() 方法把它转化成一个promise 对象作为返回,但如果timeout 函数内部抛出错误,那么就会调用Promise.reject() 返回一个promise 对象。若某函数调用一个异步函数(比如内部含有primise),该函数应用async修饰。

await表示“等待”,修饰返回promise 对象的表达式。注意await 关键字只能放到async 函数里面。

function doubleAfter2seconds(num) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(2 * num) }, 2000); } )}//写一个async 函数,从而可以使用await 关键字, await 后面放置的就是返回promise对象的一个表达式,所以它后面可以写上 doubleAfter2seconds 函数的调用async function testResult() { let result = await doubleAfter2seconds(30); console.log(result);}

await 等待后面的promise对象执行完毕,然后拿到promise resolve 的值并进行返回。显然await可以修饰axios请求,等待得到结果再往下进行,如:

async getUserList(){ const {data: res} = await this.$www.1234xp.com/dafeng.html 处的文章,转载请说明出处】

本文共计780个文字,预计阅读时间需要4分钟。

Vue中Promise的异步处理机制,如何确保数据请求的稳定性与可靠性?

Promise 是一种异步解决方案。由于 AJAX 异步请求方式下,在请求数据时,我们无法知道数据具体返回的事件,因此只能通过将一个 callback 函数传递给 AJAX 封装的方法,当 AJAX 异步请求完成时,执行该 callback 函数。

1.promise是一种异步解决方案。由于ajax异步方式请求数据时,我们不能知道数据具体回来的事件,所以过去只能将一个callback函数传递给ajax封装的方法,当ajax异步请求完成时,执行callback函数。promise对象接受resolve和reject两个参数,当一个异步动作发生时,promise对象会通过resolve完成对动作成功进行解析,rej

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

  • 由于ajax异步方式请求数据时,我们不能知道数据具体回来的事件,所以过去只能将一个callback函数传递给ajax封装的方法,当ajax异步请求完成时,执行callback函数。
  • promise对象接受resolve和reject两个参数,当一个异步动作发生时,promise对象会通过resolve完成对动作成功进行解析,reject会捕获这个动作的异常。一个promise对象,通过new Promise().then()执行下一步骤操作。
  • axios is a promise based HTTP client for the browser and node.js。也就是说,使用axios发出请求,难免涉及promise

Promise构造函数的参数是一个函数,函数里面的代码是异步的,即Promise里面的操作,和Promise()外面的操作时异步"同时"进行的。Promise中的函数的第一个参数是回调函数,resolve用来触发then里面的代码,第二个参数是回调函数,reject用来触发catch中的代码,throw new Error();也可以触发catch,

  • resolve和reject是两个回调函数,调用resolve会触发then,reject会触发catch
  
  • 在一个promise链中,只要任何一个promise被reject,promise链就被破坏了,reject之后的promise都不会再执行,而是直接调用.catch方法。
p1().then(p2).then(p3) .then(function(data) { console.log('data: ' + data); }) .catch(function(error) { console.log('error: ' + error); }); function p1() { return new Promise(function(resolve, reject) { console.log('p1 resolved'); resolve(123); });} function p2() { return new Promise(function(resolve, reject) { console.log('p2 rejected'); reject(456); });} function p3() { return new Promise(function(resolve, reject) { console.log('p3 resolved'); resolve(789); });}// 执行结果p1 resolvedp2 rejectederror: 456

  

2. async await

Promise构造函数的参数是一个函数,函数里面的代码是异步的,即Promise里面的操作,和Promise()外面的操作时异步"同时"进行的。此外,只要在函数前面加上async 关键字,也可以指明函数是异步的。

Vue中Promise的异步处理机制,如何确保数据请求的稳定性与可靠性?

async关键字实际是通过Promise实现,如果async 函数中有返回一个值 ,当调用该函数时,内部会调用Promise.solve() 方法把它转化成一个promise 对象作为返回,但如果timeout 函数内部抛出错误,那么就会调用Promise.reject() 返回一个promise 对象。若某函数调用一个异步函数(比如内部含有primise),该函数应用async修饰。

await表示“等待”,修饰返回promise 对象的表达式。注意await 关键字只能放到async 函数里面。

function doubleAfter2seconds(num) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(2 * num) }, 2000); } )}//写一个async 函数,从而可以使用await 关键字, await 后面放置的就是返回promise对象的一个表达式,所以它后面可以写上 doubleAfter2seconds 函数的调用async function testResult() { let result = await doubleAfter2seconds(30); console.log(result);}

await 等待后面的promise对象执行完毕,然后拿到promise resolve 的值并进行返回。显然await可以修饰axios请求,等待得到结果再往下进行,如:

async getUserList(){ const {data: res} = await this.$www.1234xp.com/dafeng.html 处的文章,转载请说明出处】