焦点日报:Promise异步请求变成同步

2022-12-08 10:05:44 来源:51CTO博客


(资料图片)

最近在写CRMEBOA管理系统的客户列表模块有个需求,保存客户并继续添加合同和保存合同并继续添加付款记录,这个页面跳转简单,但是比较难的是调接口后拿着接口返回的数据要同步到下一个页面,这一部分当时写的时候遇到的问题主要是:保存成功后页面已经跳转到下一个,但是保存接口返的客户id在下一个页面一直打印不出来,打印值为undefined。最后想了一下就是异步和同步的问题。使用Promise完美解决。

1.Promise是一个容器,保存着某个未来才会结束的事件(异步操作)的结果。

2.Promise有三种状态:pending(进行时),fulfilled(成功)和reJect(失败),只有异步操作的结果可以改变promise的状态,一旦promise从pending状态转化为fulfilled和reJect后就不会再改变。

3.使用:

Const promise  = new Promie(function (resolve,reject){If(/* 异步操作成功*/){resolve(value)} else{reject(value)}})

4.项目中使用

// 提交handleConfirm() {//  请求的时候调用Promise      return new Promise((resolve, reject) => {        this.$refs.form.validate((valid) => {          if (valid) {            const data = {              eid: this.formInfo.id            };this.clientContractSave(data);            resolve(valid);          }        });      });},// 调用的方法的时候 this.$refs.contractInfo.handleConfirm().then(() => {// 调用接口.then() }

这样子就会把异步变成同步,在开发中如果还有疑问可以在下方留言。

标签: 异步操作 管理系统 可以改变

上一篇:天天看热讯:容器指南之自定义LNMP容器镜像
下一篇:全球视点!MYSQL-INNODB索引构成详解