promise
Posted zlsqd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise相关的知识,希望对你有一定的参考价值。
//手写异步
// 在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的主要内容,如果未能解决你的问题,请参考以下文章