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

Posted zzh965390267

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试封装一个异步请求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>

以上是关于尝试封装一个异步请求then方法和catch方法的主要内容,如果未能解决你的问题,请参考以下文章

基于 Fetch 的请求封装

如何在 JS 中使用 try、catch、.then 链接和异步等待来解决承诺?

es6 Promise

ES6基础入门教程(十六)promise异步队列

详解 ES6 Promise异步

你不知道的Promise细节