zoukankan      html  css  js  c++  java
  • Promise

     通过网络获取数据,可能会获取失败返回错误,处理这两种情况,一开始使用回调函数,现在使用Promise对象,此对象里面就包含了需要处理的这两种情况,分别用resolve和reject函数,它们的参数就是从网络上接收到的数据(可能也会是错误信息),但是有且仅有一个函数被执行,接着Promise对象返回新的Promise对象,我们就可以通过调用then方法来处理这两种情况其中一个,所以then方法最多有两个参数,第一个参数是函数用来处理resolve接收到的数据,第二个参数也是函数用来处理reject接收到的error信息,还有catch方法,它只是then(null, reject)的简写,还有一个finally方法,它不管结果是哪种情况都会执行,所以可以通过它来执行通用的代码。

    function delay(ms) {
      // your code
      return new Promise(resolve => {
        setTimeout(function() {
          resolve('re')
        },  ms)
      })
    }
    delay(3000).then((ret) => alert(ret));

    引用链接

    新旧方法对比:

    promise的特点是将回调函数附加在包含返回值的promise对象上,而原来的方法是将回调函数作为参数传递进去。

    doSomething(function(result) {
      doSomethingElse(result, function(newResult) {
        doThirdThing(newResult, function(finalResult) {
          console.log('Got the final result: ' + finalResult);
        }, failureCallback);
      }, failureCallback);
    }, failureCallback);
    doSomething()
    .then(function(result) {
      return doSomethingElse(result);
    })
    .then(function(newResult) {
      return doThirdThing(newResult);
    })
    .then(function(finalResult) {
      console.log('Got the final result: ' + finalResult);
    })
    .catch(failureCallback);
  • 相关阅读:
    Spring JdbcTemplate源码阅读报告
    Linux 套接字通信笔记(一)
    Python的科学计算包matplotlib setup
    创建Spring Boot项目
    Java反射与自定义注解
    二手前端入门React项目
    Spring 并发事务的探究
    使用IDEA结合MAVEN创建一个Spring Java Web项目
    FutureTask与Fork/Join
    结合业务,精炼SQL
  • 原文地址:https://www.cnblogs.com/re-doc/p/14116955.html
Copyright © 2011-2022 走看看