分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

jquery异步ajax与服务器通信过程中如何通过then方法链式传递多层数据 --转载

发布时间:2023-09-06 01:24责任编辑:傅花花关键词:暂无标签

我们在有些地方可能需要对服务器返回的参数做多步处理,或者很多复杂的操作必须等到服务器返回结果之后才会执行,那么我们可以用链式调用的then方法让这里做到更加易于扩展,也更加容易分离出各个功能模块。基本的方法如下。

 1 doSubmit: function(){ 
3 ?return $.ajax({ 4 ???????url: url, 5 ???????type: ‘post‘, 6 ???????data: $("#fm").serialize(), 7 ???????dataType: ‘html‘ 8 ???}).then(function(data){ 9 ???????toastr.error(" 提交成功", "操作成功");10 ???}, function(){11 ???????toastr.error("提交失败", "操作失败");12 ???});13},

在这里对于返回的对象,可以在其他调用此方法的方法中如下处理:
this.doSubmit().then(function(data){ ???console.log(data)});
但在这里仅仅会进行打印,可是并不会是从服务器端传回的data,为了使这个data值能够传递至下面我们调用的地方,我们可以对上面的doSubmit做一点小小的处理,
这里我选择方法是采用$.Deferred(),有关于这个相关的概念和功能用法等可以参考阮一峰老师的博文已经阅览官方文档,这里就不一一介绍了。
对doSubmit()方法等改造如下:

doSubmit: function(){ ???var dtd = $.Deferred(); ???$.ajax({ ???????url: url, ???????type: ‘post‘, ???????data: $("#fm").serialize(), ???????dataType: ‘html‘ ???}).then(function(data){ ???????dtd.resolve(data); ???}, function(){ ???????toastr.error("提交失败", "操作失败"); ???????dtd.reject(); ???}); ???return dtd.promise();},

这样就可以将data数据继续传递至调用该方法接下去执行的then()方法的回调函数中了。



jquery异步ajax与服务器通信过程中如何通过then方法链式传递多层数据 --转载

原文地址:http://www.cnblogs.com/xie-chenghan/p/7815177.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved