码迷,mamicode.com
首页 > 其他好文 > 详细

promise

时间:2019-08-11 17:21:27      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:col   call   ISE   用法   eth   直接   自带   func   方法   

//手写异步
// 在js中只要看到异步首先想到回调函数,将后续要做的事传入当前要做的事里面,当前的事做好后开始做后面的事
function buy(callback) {
setTimeout(function () {
var a="我做完饭了";
callback(a);
},2000)
}
buy(function cookie(val) {
console.log(val)
});

//promise是自带的用来解决回调问题d的类,可以直接new.有三个状态:等待,成功,失败
//promise的实例天生自带一个then方法,then方法有两个参数,第一个参数表示成功第二个表示失败
let p=new Promise((resolve,reject)=>{//回调函数直接运行默认是等待状态,什么时候某个参数执行了,状态发生改变
var a="北京";
resolve(a);//当调用resolve时表示成功,触发then里的第一个参数
});
p.then((data)=>{console.log(data)},(err)=>{});
//promise比我们自己写的好处就是不用我们自己传递函数了
promise封装ajax
function ajax({url="", method="get",datatype="json"}) {
    return new Promise((resolve,reject)=>{
        var xhr=new XMLHttpRequest();
        xhr.open(method,url,true);//参数顺序!!!
        xhr.responseText=datatype,
        xhr.onload=function () {
            resolve(xhr.response);//获取数据成功调取成功的方法
        };
        xhr.onerror=function (err) {
            reject(err)
        }
        xhr.send()
    })
}

// ajax({url:"shopping.json"}).then((data)=>{this.products=JSON.parse(data)},(err)=>{console.log(err)})
//我们自己写的ajax用法和axios一样。axios就是类似这样封装的。。
// 函数执行返回一个promise对象

  

 

promise

标签:col   call   ISE   用法   eth   直接   自带   func   方法   

原文地址:https://www.cnblogs.com/zlsqd/p/11335301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!