ES6基礎知識(Promise 物件)

2022-09-01 19:30:19 字數 2891 閱讀 1929

>promise物件

title

>

head

>

<

body

>

<

script

src="./jquery-3.2.1.min.js"

>

script

>

<

script

>

/*基礎結構

*///

const promise = new promise(function(resolve, reject) else

//});

).catch(function(error));

/*載入

*///

let url = `

//function loadimgurl(url)

= function()

= url;

//});//}

//loadimgurl(url).then((res) => ).catch((error) => );

/*ajax封裝

*///

const getajax = (option) => ,

//fail:(error) =>

//});

//});

//}

//let option =

//let g1 = getajax(option).then((res) => ).catch((error) => );

/*乙個非同步操作的結果是返回另乙個非同步操作

*///

let g2 = new promise((resolve,reject) => );

=> );

/*finally方法用於指定不管 promise 物件最後狀態如何,都會執行的操作。該方法是 es2018 引入標準的

*///

promise .then(result => ).catch(error => ).finally(() => );

/*promise.all方法用於將多個 promise 例項,包裝成乙個新的 promise 例項

*///

const presolve = promise.all([p1, p2, p3]);//只有p1、p2、p3的狀態都變成fulfilled,p的狀態才會變成fulfilled,此時p1、p2、p3的返回值組成乙個陣列,傳遞給p的**函式

//const preject = promise.all([p1, p2, p3]);//只要p1、p2、p3之中有乙個被rejected,p的狀態就變成rejected,此時第乙個被reject的例項的返回值,會傳遞給p的**函式

//// 生成乙個promise物件的陣列

//const promises = [2, 3, 5, 7, 11, 13].map(function (id) );

(posts) ).catch(function(reason));//promises是包含 6 個 promise 例項的陣列,只有這 6 個例項的狀態都變成fulfilled,或者其中有乙個變為rejected,才會呼叫promise.all方法後面的**函式

/*promise.race方法同樣是將多個 promise 例項,包裝成乙個新的 promise 例項

*///

const p = promise.race([p1, p2, p3]);//只要p1、p2、p3之中有乙個例項率先改變狀態,p的狀態就跟著改變。那個率先改變的 promise 例項的返回值,就傳遞給p的**函式

/*物件轉為 promise 物件,promise.resolve方法

*///

promise.resolve('foo')

//// 等價於

//new promise(resolve => resolve('foo'))

/*(1)引數是乙個 promise 例項,如果引數是 promise 例項,那麼promise.resolve將不做任何修改、原封不動地返回這個例項。

(2)引數是乙個thenable物件,thenable物件指的是具有then方法的物件

let thenable =

};let p1 = promise.resolve(thenable);

p1.then(function(value) );

(3)引數不是具有then方法的物件,或根本就不是物件

const p = promise.resolve('hello');

p.then(function (s));

(4)不帶有任何引數

const p = promise.resolve();

p.then(function () );

*/script

>

body

>

html

>

es6基礎知識

1 箭頭操作符 var arr 1,5,6 傳統寫法 arr.foreach function v 箭頭操作符 arr.foreach v console.log v 2 字串模板 var str math.random console.log you num is 3 解構 函式解構 var x,...

ES6基礎知識清單

塊的作用域 let 恒量 const 解構陣列 array destructuring 解構物件 object destructuring 模版字串 template strings 帶標籤的模版字串 tagged templates 判斷字串裡是否包含其他字串 預設引數 default param...

ES6基礎知識(解構賦值)

es6解構賦值 title head body script 陣列解構賦值 let a,b,c 1,2,3 b c 1,2,3 let a,b 3 111 物件解構賦值 let 21 let let 123 error foo is not defined const node let loc no...