同步:同時只能做一件事;優點:**更簡單
例項const p1 = new promise((resolve, reject) => ).then(data => )
const p2 = new promise((resolve,reject) => ,200)
}).then(data => )
console.log('主線程任務')
promise.all([p1,p2])//先執行all中所有任務, 執行完成之後再去執行後面的任務
.then(data => )
//輸出結果:主線程任務 任務一 任務二 任務三
promise.race([p1,p2])//任務快的先輸出
.then(data => )
//輸出結果:主線程任務 任務一 任務三 任務二
promise.allsettled([p1,p2])
.then(data => )
例項function* p1()
return '任務6'
}var p = p1();
//一次p.next()只執行一次
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
console.log(p.next())//
promise.all([
$.ajax()
]).then(results=>)
]).then(results=>, err=>);
}else)
]).then(results=>, err=>);
}}, err=>);
runner(function *());
if(userdata.type=='vip'));
}else);
}//生成、...
});
非同步Promise及狀態特點
promise 非同步通訊程式設計的一種解決方案,它比傳統 式更加的強大 解決了es6前多層次巢狀的同步 非同步,執行順序混亂且不好維護等問題。promise使用 new 來呼叫 promise 的構造器來進行例項化,接受乙個函式作為引數,並且要傳入resolve reject兩個引數執行 new ...
js的非同步載入及promise的三種狀態
恢復內容開始 我們平時經常使用的就是這種同步載入的形式 同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的解析,因此停止了後續的檔案載入 如影象 渲染 執行。js 之所以要同步執行,是因為 js 中可能有輸出 document 內容 修改dom 重定向等行為,所以預設同步執行才是安全的。以...
js利用Promise解決多次非同步請求問題
專案背景 上傳多張時需要利用exif,拿到的exif資訊,所以需要在乙個迴圈裡多次使用exif。而exif的exif.getdata 方法是非同步執行,所以產生多次非同步請求問題。解決方法 利用promise.all 解決。每次迴圈建立乙個promise物件,然後建立乙個promise物件陣列,利用...