es6 語法 (Promise)
阿新 • • 發佈:2017-10-23
back cal timeout return 語法 ons con 執行 cnblogs
{ // 基本定義 let ajax = function(callback) { console.log(‘執行‘); //先輸出 1 執行 setTimeout(function() { callback && callback.call() }, 1000); }; ajax(function() { console.log(‘timeout1‘); //後輸出 timeout1 }) } { let ajax = function() { console.log(‘執行2‘); //先輸出 1 執行2 return new Promise(function(resolve, reject) { setTimeout(function() { resolve() }, 1000) }) }; ajax().then(function() { console.log(‘Promise‘, ‘timeout2‘); //後輸出 timeout1 Promise timeout2 }) } { let ajax = function() { console.log(‘執行3‘); //先輸出 1 執行3 return new Promise(function(resolve, reject) { setTimeout(function() { resolve() }, 1000) }) }; ajax().then(function() { console.log(‘執行4‘); //後輸出 2 執行4 return new Promise(function(resolve, reject) { setTimeout(function() { resolve() }, 2000); }); }) .then(function() { console.log(‘timeout3‘); //後輸出 3 timeout3 }) } { let ajax = function(num) { console.log("執行5"); return new Promise(function(resolve, reject) { if (num > 5) { resolve() } else { throw new Error("出錯了"); } }); } ajax(6).then(function() { console.log("log", 6); //log 6 }).catch(function(err) { console.log("catch", err); }); ajax(3).then(function() { console.log("log", 3); }).catch(function(err) { console.log("catch", err); //catch Error: 出錯了 }); }
es6 語法 (Promise)