Promise的基本用法
    Promise的基本用法
    Promise是一个类,可以创建一个实例, Promise,也是一个对象,用来传递异步操作的消息。
    Promise有三个状态:
    penging(对象的初始状态,等到任务的完成或者被拒绝)
    fulfilled (任务执行完成并且成功的状态)
    rejuce(任务执行完成并且失败的状态)
    Promise对象有以下两个特点:
    1)对象的状态不受外界影响。
    2) 一旦状态改变,就不会再变, Promise的状态只可能从“pending”状态转到“fulfilled”状态或
者“pejected”状态,而且不能逆向转换.
    缺点:
    1)无法取消 Promise,一旦新建它就会立即执行,无法中途取消。
    2)如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部。
    Promise的用法
    Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,
    分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。
    var promise = new Promise(function(resolve, reject) {
    if (/.异步操作成功 .){
    resolve(value);
    } else {
    reject(error);
    }
    });
    //then里面的函数就跟我们平时的回调函数,不管上面的是什么结果,都会走then里面。
    promise .then(function (value){
    console.log('成功',value);
    },function(reason){
    console.log('失败',reason);
    })
    Promise还提供了all,race、reject、resolve等方法
    promise链式调用:会将前一个then的返回值(return)作为下一次成功的回调函数的参数。
    promise.all方法:可以传入多个promise ,全部执行后将结果以数组的方式返回,如果有一个失败了,就失败了
    promise.race方法:就是赛跑的意思。race的用法与all一样,谁的时间快就实行哪个函数
    下面就是的小例子(字符串的倒叙),来讲解promise.all方法和promise.race方法
    let p1 =new Promise(function (resolve,reject) {
    let str1 ='__-__9'; //定义一个字符串
    let leg = str1.length; //获取字符串的长度
    let re =''; //存储返回值
    let i =1; //初始循环变量
    let a = setInterval(function () { //定义一个定时器
    re+= str1.charAt(leg-i); //获取字符串指定的位置的字符
    i++;
    if(i  leg) { //判断循环变量大于指定字符串长度
    clearInterval(a); //结束定时器
    if (i == leg +1) { //判断循环变量 刚好大于指定字符长度时 返回 倒叙字符串
    resolve(re);
    }else {
    reject('倒叙失败!');
    }
    }
    },100);
    });
    let p2 =new Promise(function (resolve,reject) {
    let str1 ='abcdefghijklmn';//定义一个字符串
    let leg = str1.length;//获取字符串的长度
    let re ='';//存储返回值
    let i =1;//初始循环变量
    let a1 = setInterval(function () {//定义一个定时器
    re+= str1.charAt(leg-i);//获取字符串指定的位置的字符
    i++;
    if(i  leg){//判断循环变量大于指定字符串长度
    clearInterval(a1);//结束定时器
    if(i == leg+1){//判断循环变量 刚好大于指定字符长度时 返回 倒叙字符串
    resolve(re);
    }else {
    reject('倒叙失败2!');
    }
    }
    },100);
    });
    Promise.all([p1,p2]).then(function (value) {
    console.log(value);/
    },function(reason){
    console.log(reason);
    })
    Promise.race([p1,p2]).then(function (value) {
    console.log(value);
    },function(reason){
    console.log(reason);
    })
    solve方法返回的是一个成功态的Promise实例
    ject方法返回的是一个失败态的Promise实例
    以上就是Promise的基本用法
    Provide 的用法你知道多少?
    第一种用法:
    Provide后面接间接宾语 时,通常用with 。
    Provide sb. with sth. 为某人提供所需要的东西。”resolve动词变名词

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。