尝试封装一个异步请求then方法和catch方法

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<style>

.padding {

padding: 50px;

}

</style>

</head>

<body>

<div class="padding">

</div>

<script>

(function(){

var Ajax=function(){

var Ajax= function (){

this.success;

this.statesuc=false;

this.statefail=false;

this.fail;

this.init();

}

Ajax.prototype={

init:function(){

var rnd= Math.random()*5;

if(rnd>2){

this.success=rnd

this.statesuc=true;

}else{

this.fail=rnd;

this.statefail=true;

}

return this

},

then:function(callback){

if(this.statesuc){

callback&&callback(this.success)

console.log(‘大于2‘+this.success);

}

return this

},

catch:function(callback){

if(this.statefail){

callback&&callback(this.fail)

console.log(‘小于2‘+this.fail);

}

}

}

return new Ajax()

}

window.Ajax=Ajax

})()

Ajax().then(function(res){

console.log(‘成功‘+res)

}).catch(function(ret){

console.log(‘失败‘+ret)

})

</script>

</body>

</html>

原文地址:https://www.cnblogs.com/zzh965390267/p/9307846.html

时间: 2024-08-30 01:16:32

尝试封装一个异步请求then方法和catch方法的相关文章

Block学习一:基本用法,用block封装NSURLRequest异步请求

首先看下面这段代码: void (^myFirstBlock)(int theOne,int theTwo) = ^(int theOne,int theTwo){ NSLog(@"====%d",theOne+theTwo); }; myFirstBlock(100,300); void:指的时返回数据类型,myFirstBlock:指的是block的名称,后面两个是参数.等号右边的block的实现. 个人理解:block本身就是一个类,他的实例化就是一个对象,下面看看这个数据请求的

block传值以及利用block封装一个网络请求类

1.block在俩个UIViewController间传值 最近刚学了几招block 的高级用法,其实就是利用block语法在俩个UIViewController之间传值,在这里分享给初学者,同时也方便我自己理解.我们知道UINavigationController类管理UIViewController的时候,利用的是"栈"的思想,在这里不做过多解释,切入正题,假设我们现在有俩个UIViewController,viewC1和viewC2,viewC1比viewC2先进入到UINavi

Android HTTP实例 使用GET方法和POST方法发送请求

Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息:用户名和年龄,使用GET和POST两种提交方式. 用浏览器打开: 不管以哪一种方式,提交以后显示如下页面,将提交的信息再显示出来. 关键代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% Str

详解HTTP请求:get方法和post方法的区别

在讨论get方法和post方法的区别时,我们经常会提到两点: 1.get传送的数据量较小,不能大于2KB,而post传送的数据量较大,一般被默认为不受限制: 2.get安全性非常低,但是post安全性较高: 究其根本,为什么呢?就需要提到http报文以及http报文的格式. 首先我们先看一下HTTP请求报文的通用格式: 在<计算机网络--自顶向下方法>一书中提到很关键的两句话: 使用get方法时实体主体为空,而使用post方法时才使用. HTML表单经常使用GET方法,将输入数据(在表单字段)

ajaxForm()方法和submitForm()方法的参数

ajaxForm()方法和submitForm()方法都能接受0个或1个参数.当为单个参数时,该参数可以是一个回调函数,也可以是一个options对象,传递option对象,使它们拥有更多控制权: (1)首先定义一个对象options,然后在里面设置参数,代码如下:var options={ target: '#output1', //把服务器返回的内容放入id为output1的元素中 beforeSubmit: showRequest, //提交前的回调函数 success: showResp

黑马程序员 02-set方法和get方法

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.set方法与get方法的使用场合 @public的成员变量可以被外界随意赋值,往往会产生脏数据,应该使用set方法和get方法来管理成员的访问(类似安检.水龙头过滤,过滤掉不合理的对象),不如人的年龄不可能为负. 2.set方法 (1)作用:给外界提供一个公共的方法用来设置成员变量值,可以在方法里面过滤掉一些不合理的值: (2)命名规范: 1> 方法名必须以set开头 2> set后面跟上成员变量的名

Hibernate中Session.get()方法和load()方法的详细比较(转)

一.get方法和load方法的简易理解 (1)get()方法直接返回实体类,如果查不到数据则返回null.load()会返回一个实体代理对象(当前这个对象可以自动转化为实体对象),但当代理对象被调用时,如果没有数据不存在,就会抛出个org.hibernate.ObjectNotFoundException异常 (2)load先到缓存(session缓存/二级缓存)中去查,如果没有则返回一个代理对象(不马上到DB中去找),等后面使用这个代理对象操作的时候,才到DB中查询,这就是我们常说的 load

Hibernate中Session.get()方法和load()方法的详细比较

一.get方法和load方法的简易理解 (1)get()方法直接返回实体类,如果查不到数据则返回null.load()会返回一个实体代理对象(当前这个对象可以自动转化为实体对象),但当代理对象被调用时,如果没有数据不存在,就会抛出个org.hibernate.ObjectNotFoundException异常 (2)load先到缓存(session缓存/二级缓存)中去查,如果没有则返回一个代理对象(不马上到DB中去找),等后面使用这个代理对象操作的时候,才到DB中查询,这就是我们常说的 load

4.0 OC基础语法-set方法和get方法

set方法和get方法的使用场合@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检.水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数set方法作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值命名规范:方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写形参名称不要跟成员变量同名get方法作用:返回对象内部的成员变量命名规范:get方法的名称一般就跟成员变量同名成员变量的命名规范成员变量都以下划线 _ 开头可