關於es6的promise和es7的yield
1.promise
2 如何創造乙個promise
如何建立乙個promise(直接執行)
const promise = new promise((resolve,reject) => else
)注意:對於promose物件 如果直接使用new的話則會直接執行,想要定義則使用函式來定義這麼乙個非同步操作
方法2(非同步操作不會立刻執行)
resolve和reject與then是什麼關係
比如我們在resolve函式中定義的
function runasync(), 2000);
});return p;
}runasync()
非同步執行完runasync後,如果再用
runasync().then(res=>)
此時就會列印出 '隨便什麼資料'
非同步操作的reject和resolve在then中的**體現
function runasync()else最後如果這個數字大於5 則會列印出}, 2000);
});return p;
};runasync().then(function(data),function(data) );
promise {}39787b1918052d26d1c92ea7ecfacad86e8dbfa2
vm296:19 reject
vm296:20 數字太大了!
3 promise.all
var p1 = new promise((resolve, reject) => );promise {}var p2 = new promise((resolve, reject) => );
var p3 = new promise((resolve, reject) => );
var p4 = new promise((resolve, reject) => );
var p5 = new promise((resolve, reject) => );
promise.all([p1, p2, p3, p4, p5]).then(values => , reason => );
vm412:18 (5) ["one", "two", "three", "p4 reject!", "p5 resolve!"]
引數中任意乙個promise返回失敗時,那麼整體立即返回失敗,返回的錯誤資訊是第乙個失敗的promise結果。
var p1 = new promise((resolve, reject) => );4 promise.racerace有賽跑之譯,因此返回的新例項狀態,是跟隨引數中最先改變狀態的那個例項;如果不是promise例項,依舊先用promise.resolve方法,轉化後再進一步處理。var p2 = new promise((resolve, reject) => );
var p3 = new promise((resolve, reject) => );
var p4 = new promise((resolve, reject) => );
var p5 = new promise((resolve, reject) => );
promise.all([p1, p2, p3, p4, p5]).then(values => , reason => );
vm425:20 p4 reject!
如果傳的迭代為空,則返回的 promise 永遠等待
var p1 = new promise((resolve, reject) => );2.async和awaitvar p2 = new promise((resolve, reject) => );
var p3 = new promise((resolve, reject) => );
promise.race([p1, p2, p3]).then(values => , reason => );
promise {}
vm446:12 one
ES6關於promise技巧
1.推向promise物件推向 不同的狀態 const pro newpromise resolve,reject 2.原型成員 例項成員 註冊乙個後續處理函式,當promise為resolved狀態是執行該函式,當promise為rejected狀態是執行該函式的第二個引數 catch 註冊乙個後...
ES6關於Promise的用法
含義 promise 物件用於乙個非同步操作的最終完成 或失敗 及其結果值的表示。簡單點說,它就是用於處理非同步操作的,非同步處理成功了就執行成功的操作,非同步處理失敗了就捕獲錯誤或者停止後續操作。new promise executor function resolve,reject else 我...
使用ES6模擬Promise
const promise newstatus param newvalue param queue 執行的作業佇列 changestatus newstatus,newvalue,queue this promisestatus newstatus this promivevalue newval...