美文网首页
promise的理解

promise的理解

作者: Melantha_CHEN | 来源:发表于2019-06-28 10:02 被阅读0次
  1. promise是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作);

Promise.all()

Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
const p = Promise.all([p1, p2, p3]);
Promise.all方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。(Promise.all方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。)
p的状态由p1、p2、p3决定,分成两种情况。
(1)只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。
(2)只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。

Promise.race()

const p = Promise.race([p1, p2, p3]);
只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。

Promise.resolve()

Promise.resolve可以将对象转为 Promise 对象
const jsPromise = Promise.resolve($.ajax('/whatever.json'));

Promise.resolve('foo')
// 等价于
new Promise(resolve => resolve('foo'))

应用

  • 加载图片
    我们可以将图片的加载写成一个Promise,一旦加载完成,Promise的状态就发生变化。
const preloadImage = function (path) {
  return new Promise(function (resolve, reject) {
    const image = new Image();
    image.onload  = resolve;
    image.onerror = reject;
    image.src = path;
  });
};

相关文章

  • Promise async/await

    Promise async/await 参考初探promise promise 理解 JavaScript ...

  • Promise原理解析

    Promise原理解析 标签(空格分隔): Node.js Promise原理解析 简介 Promise 对象用于...

  • 【前端 JavaScript 高级】06 - Promise的入

    第 1 章 Promise的理解和使用 1.1 Promise 是什么? 1.1.1 理解 抽象表达 Promis...

  • Promise用法详解

    参考promise|深入理解 promise:promise的三种状态与链式调用 Promise对象只有三种状态 ...

  • Promise - 04 Promise 的理解和使用

    Promise 的理解和使用 1: Promise 是什么? 抽象表达Promise 是 JS 中进行异步编程的新...

  • Promise 的理解

  • Promise的理解

    Promise的理解:Promise是异步编程的一种方式,以同步的方式进行编程,避免了层层嵌套的回调函数,更加合理...

  • promise的理解

    promise是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作); Promise.all() P...

  • Promise的理解

    如何解决异步 在Promise没有出现之前,我们通过回调函数,进行解决异步操作 利用Promise重写 上面的代码...

  • Promise的理解

网友评论

      本文标题:promise的理解

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