Promise(es6)和await,async(es7)

參考連接
await必須寫在async的做用域內html

const p = () => {
  return new Promise((open, reject) => {
    setTimeout(() => {
    var value=200
     open(value)//傳遞結果
    }, 2000);
  });
};
 
const Async = async () => {
  try {
    const t = await p();//await必須寫在async裏面
    console.log(t);
  } catch (err) {
    console.log(err);
  }
};
 
Async();
複製代碼
  1. promise函數裏是reject,那就會在catch裏面執行代碼;
  2. promise函數裏是open,會執行try裏面的代碼
  3. await後面等待的是一個結果,須要包含在async函數內,promise對象||return value||function函數
    通常是在async裏return返回值,若是沒有返回值,它會返回Promise.resolve(undefined),但也不會阻塞後面的語句執行;而且經過try{}catch{}來解決promise.reject()報錯的問題。
  4. async函數是返回的是一個promise對象,如Async就是一個promise對象,能夠調用執行

總結:es6

  • es6的promise是var p=new Promise((o,c)=>{o(...)|c(...)})
  1. 爲o時執行then,p().then((...)=>{})
  2. 爲c時執行catch,p().cathc(()=>{})
  • es7升級版promise 是var p=new Promise((o,c)=>{o(...)|c(...)})+ async()=>{try{const t=await p()}catch(err){}}
  1. async裏面調用pp執行完返回 值
  2. 執行t後面的語句
相關文章
相關標籤/搜索