Promise 非同步程式設計

2021-10-10 10:16:16 字數 851 閱讀 8254

promise 是非同步程式設計的解決方案,他代表承諾,便是一定會丟擲兩種狀態,狀態一經確定就不會改變

編譯成功:resolve(value) 為(必選)

編譯失敗:reject(error) (可選)

使用then 接收正確的丟擲

then 後面接 catch(function(error)){} ( 可以簡寫為function(){} ) 接受錯誤的資訊的處理( 但編譯出錯如果沒有在then 後面接 catch(function(error)) 頁面會報錯 )

let promise = new promise(function (resolve, reject) );

console.log(promise, 'promise');

promise.then(() => , function (e) );

因為 then 返回的是乙個新的promise 物件,所以後面可以繼續跟著 then(為鏈式寫法)

let promise = new promise(function (resolve, reject) );

promise.then(() => , function (e) ).then((e) => );

相對於直接使用 promise 使用 async/await 會直接清晰

缺點就是濫用會導致效能問題

function awaite() );

}async function getpromise()

getpromise().then((e)=>).catch(alert);

console.log('結束運算');

Promise非同步程式設計

當我們用 ajax去請求有依賴的多個資料的時候,編寫會形成漏斗形狀的結構,可讀性差,可以使用es6提供的promise promise概述 promise是非同步程式設計的一種解決方案,從語法上講,promise是乙個物件,從它可以獲得非同步操作的訊息 使用promise有以下好處 可以避免多層非同...

Promise非同步程式設計

例項化promise物件,建構函式中傳遞函式,該函式中用於處理非同步任務 resolve和reject兩個引數用於處理成功和失敗兩種情況,並通過p.then獲取處理結果 在呼叫then時可以只傳入正常情況函式處理,不傳入異常情況函式,即只處理成功情況 我們使用new來構建乙個promise prom...

非同步程式設計 Promise任務鏈

講解promise任務鏈之前先看乙個例子 new promise resolve,reject then then 猜猜控制台會列印什麼東西呢,正確答案是 reject 2 resolve 3 想知道為什麼,繼續往下看 promise chainthen函式執行後會返回乙個新的promise物件 如...