zoukankan      html  css  js  c++  java
  • new Promise 出来的promise实例对象的默认状态是pendding,不能像then/catch方法一样返回一个新的promise实例对象!!!

    then/catch方法可以返回一个新的promise实例对象。then/catch方法指定的回调函数(执行)return的返回值可以决定这个新的promise实例对象的状态,这正是实现then方法链式调用的基础。

    promise实例对象默认状态是pendding,可以改变自身状态。但普通的promise实例对象不会返回一个新的promise实例对象,因此在promise实例对象的执行器函数return一个结果是没有意义的。promise实例对象应该关注的是自身的状态改变。

      new Promise((resolve, reject) => {
            return Promise.resolve(1) //return一个成功状态的promise实例对象:promise实例状态依然是pendding。
          })
          .then(value => {
            console.log('成功', value);
            return 5
          }, reason => {
            console.log('失败', reason);
          })
          .then(value => {
            console.log('成功hhh', value);
          }, reason => {
            console.log('失败', reason);
          })
    
        //无打印 
        //错误分析:认为promise实例对象也能返回一个新的promise实例对象,实际上这是then/catch方法的特点,和promise实例对象无关。promise实例对象的关注点应该是自身状态的改变,利用promise实例对象(执行器函数中)去return一个值去链式调用是没有意义的。promise实例对象可以改变自己的状态并且传递状态值。
    
        new Promise((resolve, reject) => {
            return 5 //return5
          })
          .then(value => {
            console.log('成功', value);
            return 5
          }, reason => {
            console.log('失败', reason);
          })
          .then(value => {
            console.log('成功hhh', value);
          }, reason => {
            console.log('失败', reason);
          })
    
        //无打印 
    
  • 相关阅读:
    依赖注入方法
    依赖注入
    用spring来控制反转(ioc)
    ioc控制反转笔记
    写模块的流程例子
    淘淘商城笔记1
    二叉树的前序中序后序遍历
    专题2 二叉树(go)
    专题1:二分查找
    python自动化开发-[第三天]-编码,函数,文件操作
  • 原文地址:https://www.cnblogs.com/xjt31/p/14018533.html
Copyright © 2011-2022 走看看