美文网首页
【Promise】Promise基本使用

【Promise】Promise基本使用

作者: iamsharleen | 来源:发表于2018-03-14 17:27 被阅读0次

示例代码:

// vue.js

let getData = (params) => {
  let promise = new Promise(function (resolve, reject) {
    getData(params).then(res => {
      if (res.data) {
        resolve("SUCCESS!")
      } else {
        reject("FAILED!")
      }
    })
  })
  return promise
}

this.getData (params).then((data)=>{
  //...
  console.log('the result is ' + data)
}).catch((data)=>{
  //...
  console.log('the result is ' + data)
})

这是一个从后台查询数据的方法,getData(params)方法向后台发送请求,看起来,Promise有点陌生,代码好像有点复杂。
回想一下,以前写过的代码里面,如果要实现:唯一性校验——>提交,实现方法可能是:

let submit(params){
  // 后台请求
  validate(params).then((res)=>{
    if(res && res.data === 'TRUE'){
      // 提交方法
      sumbitData(params).then((res) => {
        //其它操作
      })
    }
  })
}

这样的嵌套可能不仅有两层,这时,掉进了可怕的回调地狱。。再看看Promise,

Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。

Pormise有三种状态,pending(进行中)、fulfilled(已成功)和rejected(已失败),状态的变化只有两种方法。Promise有resolved和rejected来处理这两种变化。

let p = new Promise((resolve, reject) => {
  validate(params).then((res)=>{
    if(res.data === 'TRUE'){
      resolve(params)
    }else{
      reject(error)
    }
  })

  p.then((params) => {
    sumbitData(params).then((res) => {})
  }).catch((error)=>{
    console.log(error)
  })
})

当validate()成功执行时,调用resolve()方法,失败时,调用reject()方法。Promise有then(onfulfilled, onrejected)方法分别指定resolved状态和rejected状态的回调函数,then方法包含两个参数:onfulfilled 和 onrejected,它们都是 Function 类型,分别对应resolve和reject方法:
onfulfilled(data)——resolve(data),Promise状态为fulfilled;
onrejected(data) —— reject(data),Promise状态为rejected。
此外,Promise有catch方法来捕捉异常,类似于java的try...catch,也相差于then(null,errorFunc)。

then返回的是一个新的Promise,所以,可以用doSomething().then().then()...

例子待补。。。

相关文章

  • Promise 的使用

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

  • 【Promise】Promise基本使用

    示例代码: 这是一个从后台查询数据的方法,getData(params)方法向后台发送请求,看起来,Promise...

  • Promise

    Promise的基本使用

  • 实现一个简单的Promise

    (1)Promise 基本使用 (2)Promise A+规范 一个 promise 必须有3个状态,pendin...

  • 深度promise && 自实现一个Promise对象

    什么是promise? promise是js直接中进行异步编程的新的解决方案 promise的基本使用 Promi...

  • 37.promise讲解

    在promise出现之前,对异步请求的处理方式如下 执行结果: 什么是promise和基本使用 Promise是一...

  • Promise 对象

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

  • Promise 对象

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

  • JavaScript----async、await

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

  • ES6——Promise

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

网友评论

      本文标题:【Promise】Promise基本使用

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