JS之 Promise(1)
- 什么是Promise
在JavaScript中伪煤,所有的代碼都是單線程執(zhí)行的损离,也就是說JavaScript的所有網(wǎng)絡(luò)操作哼审,瀏覽器事件,都是異步執(zhí)行的显设。異步執(zhí)行可以用回調(diào)函數(shù)實(shí)現(xiàn)框弛。Promise就是解決過多函數(shù)回調(diào)導(dǎo)致代碼雜亂的一種方法,并且Promise還提供了許多有用的API捕捂,這樣使我們?cè)谑褂没卣{(diào)這方面更加便利瑟枫。實(shí)現(xiàn)的原理就是Promise對(duì)象里面存放了事件執(zhí)行的結(jié)果,根據(jù)不同的結(jié)果執(zhí)行不同的回調(diào)指攒。 - 在 ES6 中慷妙,可以使用三種辦法創(chuàng)建 Promise 實(shí)例(對(duì)象)
- 構(gòu)造方法
let promies =new Promise((resolve, reject) => {
resolve();
});
Promise 構(gòu)造函數(shù)接受一個(gè)函數(shù)作為參數(shù),該函數(shù)的兩個(gè)參數(shù)分別是 resolve 和 reject允悦。它們是兩個(gè)函數(shù)膝擂,由 JavaScript 引擎提供,不用自己部署。
- 通過 Promise 實(shí)例的方法猿挚,Promise#then 方法返回的也是一個(gè) Promise 對(duì)象
promise.then(onFulfilled, onRejected);
- 通過 Promise 的靜態(tài)方法,Promise.resolve()驶鹉,Promise.reject()
var p = Promise.resolve();
p.then(function(value) {
console.log(value);
});