美文网首页
认识并使用Promise

认识并使用Promise

作者: 611383f71c9e | 来源:发表于2018-03-18 17:41 被阅读0次

Promise 是一个异步操作返回的对象,用来传递异步操作的消息。

可以解决的问题:

  1. 解决了回调地狱问题,不会导致难以维护;
  2. 合并多个异步请求,节约时间。

Promise 有三种状态:

  1. Pending Promise 对象实例创建时的初始态;
  2. Fulfilled 成功时的状态;
  3. Rejected 失败时的状态。

使用 Promise:

Promise.then():用来指定 Promise 对象的状态改变时要执行的操作

let promise = new Promise(function (resolve, reject) {
    resolve('成功');
    //reject('失败');
})

promise.then(function (data) {
    console.log('data: ', data);
},function (err) {
    console.log('err: ', err);
})

Promise.all():接收一个数组,数组内是 Promise 实例,必须都成功呢才表示成功。

Promise.race():接收一个数组,数组内是 Promise 实例,最早返回的对象成功了,就变为成功态,如县失败了,就改变状态为失败态。

let fs = require('fs');
function read(url){
    return new Promise(function(resolve, reject){
        fs.readFile(url,'utf8',function(err, data){
            if(err) reject( err);
            resolve( data);
        })
    })
}

Promise.all([read('1.txt'), read('2.txt')]).then(function (data) {
    console.log(data);
},function (err) {
    console.log('err: ', err);
})

Promise.race([read('1.txt'), read('2.txt')]).then(function (data) {
    console.log(data);
},function (err) {
    console.log('err: ', err);
})

Promise.resolve():返回一个 Promise 实例,这个 Promise 实例处于 resolve 状态。

Promise.resolve([1,2,3]).then(function(data){
    console.log(data);
});

输出:[ 1, 2, 3 ]

Promise.reject():返回一个 Promise 实例,这个 Promise 实例处于 reject 状态。

Promise.reject([1,2,3]).then(null,function(err){
    console.log('err',err)
});

输出:err [ 1, 2, 3 ]

相关文章

  • 认识并使用Promise

    Promise 是一个异步操作返回的对象,用来传递异步操作的消息。 可以解决的问题: 解决了回调地狱问题,不会导致...

  • 手写 Promise

    一、Promise 是一个异步操作返回的对象,用来传递异步操作的消息。 Promise 介绍和使用详见: 认识并使...

  • 2019-06-05 手写Promise

    一、Promise 是一个异步操作返回的对象,用来传递异步操作的消息。 Promise 介绍和使用详见: 认识并使...

  • 让微信小程序内置函数返回promise的方法

    Promise API 进行封装并使用Promise API 封装Promise API1.在任意文件下新建xxx...

  • promise

    本文目标 从一脸懵逼,到认识、掌握并使用Promise…… ES2015出来之后,什么箭头函数、类声明、解构赋值等...

  • Promise 静态 API 的使用方法

    Promise.all 使用场景:假设我们希望许多 Promise 并行执行,并等待它们都准备好。 一个实际例子是...

  • 认识并使用 CADisplayLink

    首先说一下屏幕刷新原理和卡顿产生的原因,方便对CADisplayLink的理解。 屏幕刷新原理:CRT的电子枪按照...

  • RN-ErrorUtils处理崩溃、promise错误

    ErrorUtils.js路径 promise路径 ErrorUtils使用 promise使用

  • js.Promise resolve()

    功能一:Promise.resolve();立即让promise进行resolve的状态,并返回Promise 相...

  • 认识Promise

    什么是Promise promise 是异步编程的一种解决方式。从语义上讲,promise是一个对象,他可以获取异...

网友评论

      本文标题:认识并使用Promise

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