美文网首页
Promise基本用法

Promise基本用法

作者: kevin元 | 来源:发表于2019-01-25 17:26 被阅读0次

## promise概述

- 基本语句 resolve,reject,then,catch

- 三种状态:pending,fulfilled,rejected

---

### 基本用法

- promise初始化

```

var promise = new Promise(function(resolve,reject)

    resolve('test')

    reject('error')//或者下面这种

    throw 'error' //推荐

);

```

- then,catch用法

```

promise.then(function(data) {

    console.log('success');

}).catch(function(error) {

    console.log('error', error);

});

```

---

### 不常用的方法

- all用法

```

var p = Promise.all([p1,p2,p3])

```

概述:全部都是fulfilled,才执行then,一个是rejected就catch.

**重点**

执行顺序是按参数顺序,不是会回调顺序,并行执行

- race用法

代码同all,有一个状态改变就执行

- 便捷用法

```

Promise.resolve(value)

Promise.reject(reason)

```

---

### 常见问题

1. reject和catch区别

```

var promise = new Promise(function (resolve, reject) {

    reject("333")

    resolve(x);

});

promise.then((value) => {

    console.log(value)

}).catch((error) => {

});

// promise.then(function (data) {

//    console.log(data)

// }, function (error) {

//    console.log(error)

//    });

```

**(待议)**

then中的异常catch也能捕获,上文中第二种方式收不到resolve(x)的异常

2. 如果在then中抛错,而没有对错误进行处理(即catch),那么会一直保持reject状态,直到catch了错误.

```

function taskA() {

    console.log(x);

    console.log("Task A");

}

function taskB() {

    console.log("Task B");

}

function onRejected(error) {

    console.log("Catch Error: A or B", error);

}

function finalTask() {

    console.log("Final Task");

}

var promise = Promise.resolve();

promise

    .then(taskA)

    .then(taskB)

    .catch(onRejected)

    .then(finalTask);

-------output-------

Catch Error: A or B,ReferenceError: x is not defined

Final Task

```

相关文章

  • Promise扩展基础

    Promise.all基本用法: Promise.race基本用法: 直接调用成功状态: 函异步函数:

  • promise详解

    Promise 用法api 1.基本用法 2.简便写法 Promise.all([]) Promise.race...

  • Promise 对象

    Promise 的含义 基本用法 Promise.prototype.then() Promise.prototy...

  • Promise 的使用

    使用Promise 基本用法 A Promise is an object representing the ev...

  • Promise 对象

    目录:Promise 的含义基本用法Promise.prototype.then()Promise.prototy...

  • ES6——Promise

    Promise基本用法示例: let i=100; let promise=new Promise(functio...

  • Promise基本用法

    Promise是es6中解决回调地狱一种同步优雅写法。promise.then作为微任务队列中的一种异步,优先级高...

  • Promise基本用法

    ## promise概述 - 基本语句 resolve,reject,then,catch - 三种状态:pend...

  • JavaScript----async、await

    async 函数 基本用法 语法返回Promise对象Promise对象await命令使用注意点 实例:按顺序完成...

  • promise的基本用法

    为什么会出现promise 1: 为了使深层次的回调,看起来更加简单。避免了层层嵌套的回调函数。 promise的...

网友评论

      本文标题:Promise基本用法

      本文链接:https://www.haomeiwen.com/subject/chrvjqtx.html