ES6中promise的相关问题总结(then,catch,ajax中promise对象)

​ Node的出现大大推动了js这门语言在后台的发展,接触过Node的人都知道,Node是以异步(Async)回调著称的,虽然异步带来了程序的高执行效率,但同时也减少了程序的可读性。

​ 如果我们有几个异步操作,并且后一个操作需要前一个操作返回的数据才能执行,这样按照Node的一般执行规律,要实现有序的异步操作,通常是一层加一层嵌套下去(上层结束有返回时执行下一步)。

​ 为了解决这个问题,ES6提出了Promise的实现。

img

promise

含义:答应去做,还没去做

状态:pending/fulfilled/reject

作用:解决回调地狱

使用步骤

  • 创建promise对象
Var p = new Promise(function(resolve, reject){

if(成功){

    resolve;

}else{

    reject; //失败

}

});

    + 调用:对象.than;

这里写图片描述

解释:promise对象一旦被创建,即对应为pending状态(等待),执行then,执行成功状态变为fulfilled,调用resolve的回调方法,反之状态变为reject,调用reject函数。

then

​ 每次then方法都会得到对应promise对象,且可以无限调用。相连then方法可接受上一步返回值。

​ 所以我们可以用链式then来代替之前提到的嵌套。

catch

​ 用以捕捉链式then中的错误,注意,会中断错误点后续then方法。

使用$.ajax中的promise方法

这里写图片描述

补充:今天学到了一个三点表达式,

var a  = [1,2,3,4,5];

var b  = [..a, 'a','b'];

Console.log(b)  //1,2,3,4,5,'a','b'

比较简明就不多做解释了,另外三点在结合数组传参时可能有奇效。

猜你喜欢

转载自blog.csdn.net/qq_16756237/article/details/81746052