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);
  • 相关阅读:
    使用SecureCRT连接虚拟机中Linux系统的详细方法以及虚拟网络配置方法
    虚拟机快照克隆多台的方法
    Linux虚拟机网络设置
    Hadoop学习笔记之一:Hadoop IPC
    webpack超详细配置, 使用教程(图文)
    webstrom提示不见了
    vuejs实现本地数据的筛选分页
    关于手机端audio无法自动播放问题解决方法
    计算机实现加法的学习心得
    计算机编码随记
  • 原文地址:https://www.cnblogs.com/re-doc/p/14116955.html
Copyright © 2011-2022 走看看