1. 程式人生 > >初識js非同步

初識js非同步

// js是一門單執行緒的語言
// 非同步 // 一個步驟花費的時間過多,然後影響後面的效率,就會進行非同步處理 // 1.多執行緒

// 2.單執行緒非阻塞式 // 程式碼從上往下執行,將繁瑣任務先讀取然後扔到任務佇列裡面, // 任務佇列 :所有的程式碼執行以後,在執行任務佇列裡面的程式碼 // let i = 10; // setTimeout(function () { // i = 50; // console.log(i); 50
// }, 10); // setTimeout(function () { // i = 100; // console.log(`我是第二個${i}`); // }, 10)
// console.log(`我是第三個${i}`); 10 // let pm = new Promise(function (resolve, reject) { // //dosomething // }); // console.log("go on"); // pm.then(function () { // console.log("非同步"); // }); // 回撥地獄 // 解決方法 // Promise // new Promise(function(reaolve,reject){
// }); // Promise是一個同步 // 一旦裡面呼叫了resolve或者reject方法的時候,這個方法就是非同步,會放到任務佇列裡面去,最後執行完了同步的程式碼再執行 // 同樣是非同步的時候的任務,resolve的優先順序高於setTimeout,執行順序 // setTimeout(function () { // console.log("hello") // }); // let pm = new Promise(function (resolve, reject) { // console.log('haha'); // // resolve(); // 觸發then // // reject();//觸發失敗catch // console.log('nihao')
// }); // // then表示成功的時候呼叫這個then方法 // pm.then(function () { // console.log('成功'); // }); // console.log('666') // // pm.catch(function () { // // console.log('失敗'); // // });