js中Promise对象实例详解

假设我现在有个实名验证页面,需要验证身份证号码和真实姓名,实名认证是到公安部系统验证(假设在前端验证),验证通过后我再将当前表单信息保存到提交到我自己后台保存;

方法一 不用promise

//外层ajax,校验实名信息$.ajax({   type: "POST",   url: "公安部检验真实姓名和身份证接口",   dataType:"json",   data: {name:"王尼玛",idCardNo:"4405************6543"},   success: function(msg){          if(msg.status)     {        //真实姓名、身份证号码验证通过,提交表单数据到本系统后台        $.ajax({           type: "POST",           url: "/my/info.php", //本系统后台地址           dataType:"json",           data: {表单数据},           success: function(msg){                  if(msg.success)             {                //保存成功                           }             else             {                //保存失败             }           }        });     }     else     {        //真实姓名、身份证号码错误     }   }});

登录后复制

我们很清楚的看到,以上例子需要嵌套ajax实现,实际需求中,凡是嵌套ajax的代码读起来都会很苦逼(多层更苦逼),当然,有的人会使用同步的ajax实现,但是同步ajax请求时会给用户页面死掉了的感觉【笑哭】;

方法二 使用promise

 new Promise(function (resolve, reject) {            $.ajax({                type: "POST",                url: "公安部检验真实姓名和身份证接口",                dataType: "json",                data: { name: "王尼玛", idCardNo: "4405************6543" },                success: function (msg) {                    if (msg.status) {                        resolve(msg); //真实姓名、身份证号码通过验证,msg会传入then方法的第一个方法参数                    }                    else {                        reject(msg); //真实姓名、身份证号码未通过验证,msg会传入then方法的第二个方法参数                    }                }            });        }).then(function (resolveMsg) {            $.ajax({                type: "POST",                url: "/my/info.php", //本系统后台地址                dataType: "json",                data: { "表单数据": "表单数据" },                success: function (msg) {                    if (msg.success) {                        //保存成功                                  }                    else {                        //保存失败                    }                }            });        }        , function (rejectMsg) {            //真实姓名、身份证号码错误        });

登录后复制

总结
先说结论:Promise适用于多层嵌套的异步ajax回调;

很明显,区别于方法一的嵌套ajax,方法二的promise结构更清晰,特别是在多层嵌套后,方法二的优势更加明显,多层嵌套后方法一会变成一大坨,非常难看懂,方法二promise可以用:

new Promise().then()    .then()    .then()    .catch();

登录后复制

格式,结构非常清晰的处理;

相关推荐:
Promise的基本使用方法教程

使用Promise简化回调

js中promise实例解析

以上就是js中Promise对象实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2784998.html

(0)
上一篇 2025年3月8日 17:18:19
下一篇 2025年3月6日 10:26:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS面向对象用法实例

    对象是包含了属性和方法的集合体。什么是面向对象呢? 面向对象就是一种编程思想,是一个概念。  在js中,通过一种叫做原型的方式来实现面向对象编程。 nbsp;html>        创建对象点击显示学生信息 //创建一个学生对象 v…

    编程技术 2025年3月8日
    200
  • js深拷贝实例探讨

    深度拷贝就是把父对象拷贝到子对象上,而且两者的内存和以后的操作都互不影响的拷贝,本文主要和大家分享js深拷贝实例探讨,希望能帮助到大家。 (1)方法1 function copy(obj1,obj2){  var obj2=obj2||{}…

    编程技术 2025年3月8日
    200
  • 监听JS变量的变化方法实例

    我现在有这样一个需求,需要监控js的某个变量的改变, 如果该变量发生变化,则触发一些事件, 不能使用timeinterval之类的定时去监控的方法, 不知道有比较好的解决方案么? 流行的MVVM的JS库/框架都有共同的特点就是数据绑定, 在…

    编程技术 2025年3月8日
    200
  • JS原生对象与内置对象区别详解

    一、JS的对象和类型 js中的所有事物都是对象,包括但不限于字符串、数值、数组、函数等等,还包括自定义对象。在红宝书中,将js分为五种基本类型:null、undefined、number、string、boolean和一种复杂类型:obje…

    2025年3月8日
    200
  • 几种js继承的式分享

    本文主要和大家分享几种js继承的式分别有原型继承、借用构造函数继承、组合继承、寄生式继承、寄生组合方式继承,希望能帮助到大家。 原型式继承 可以在不必预先定义构造函数的情况下实现继承,其本质是执行给定对象的浅复制。而复制得到的副本还可以得到…

    编程技术 2025年3月8日
    200
  • Mock.JS拦截HTTP请求实例解析

    mockjs是一种比较通用的前端模拟http请求及回复的工具,能够仿真处各类http的请求及返回结果。实现在无后端的情况下,前端对于后端接口的仿真。mock的基础使用也是比较简单,本文我们主要和大家分享mock.js拦截http请求实例解析…

    编程技术 2025年3月8日
    200
  • js中table数据导出excel文件

    本文主要和大家分享一些代码,主要和大家分享js中table数据导出excel文件的方法实例,希望能帮助到大家。 表格转换成excel并下载 (document).ready(function () {(“#myBtn”).click(fun…

    编程技术 2025年3月8日
    200
  • Node.js get,post提交数据实例代码

    本文主要和大家分享Node.js getpost提交数据实例代码,希望能帮助到大家。 demo.js: //引入http模块var http=require(‘http’);var url=require(‘url’);var ejs=re…

    编程技术 2025年3月8日
    200
  • JS经纬度距离计算代码分享

    本文主要和大家分享js经纬度距离计算代码分享,希望大家能用以下代码学会计算js经纬度距离,希望能帮助到大家。  GetDistance:function(lat1, lng1, lat2, lng2, len_type = 2, decim…

    编程技术 2025年3月8日
    200
  • js正则表达式如何应用

    本文主要和大家js中正则表达式的应用实例(包括面试题),希望能帮助到大家,能让大家正确使用js正则表达式。 1、找重复项最多的字符和个数 var str = 'sassdfdfffdasdffffffsdsdddsss'…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论