• 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);
  • 相关阅读:
    浅谈ASP.NET核心对象
    SQL MID() 函数
    如何查看linux系统CPU利用率 简单
    canvas 学习笔记 简单
    linux 为用户设定、修改密码 passwd 简单
    转crontab用法(例子) 简单
    mongodb加入系统服务 简单
    转导出csv文件时,处理分隔符问题 简单
    tar和gzip、unzip命令详解 简单
    linux创建用户命令 简单
  • 原文地址:https://www.cnblogs.com/re-doc/p/14116955.html
Copyright © 2020-2023  润新知