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