Promise 中的 then总结


  • Promise 中 then

    • promise的then中默认返回一个promise实例
    • 当then中没有return时返回的是undefined
    • 当then中return的对象或者基本类型等非new Promise实例时,对下一个进程then是同时执行的
          <!--同时执行111和222-->
          new Promise(()=>{})
          .then(val=>{
              console.log(111);
              return `string`;
          })
          .then(data=>{
              console.log(222);
              return data
          })
          .catch(err=>{
              console.error(err)
          })
      
    • 当then中return的是一个new Promise或者Promise.resolve()等实例时,对下一个进程then时队列顺序执行的
          <!--顺序执行 先111再222-->
          new Promise(()=>{})
          .then(val=>{
              console.log(111);
              return Promise.resolve(`string`);
          })
          .then(data=>{
              console.log(222);
              return data
          })
          .catch(err=>{
              console.error(err)
          })
      
    • 在node项目中,多少情况下都是以函数导出导入方式使用Promise【尤其是路由层和数据层】,此时一定要对函数return才有效
          <!--函数return-->
          <!--出 a.js-->
          const handerGetrouter = (reqObj)=>{
            ...
            return new Promise((resolve,reject)=>{
                resolve(6666)
            })
            .then((val)=>{
                return val;
            })
          }
          module.exports = {
              handerGetrouter
          }
          
          <!--入 b.js-->
          const {handerGetrouter}=require('a');
          ...
          handerGetrouter(reqObj)
          .then((data)=>{
              console.log(data);
              ....
          })
          .catch(err=>{
             console.error(err) 
          })
      


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM