若想系统学习Promise可以阅读:阮一峰大神写的Promise对象,此篇记录常用用法。
Promise顺序请求
方法1——连续使用then链式调用
方法2——使用promise构建队列
方法3——使用async、await实现类似同步编程,async函数内部实现同步
参考:https://www.jianshu.com/p/dbda3053da20
方法1:链式调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| function getA(){ return new Promise(function(resolve, reject){ setTimeout(function(){ resolve(2); }, 1000); }); } function getB(){ return new Promise(function(resolve, reject){ setTimeout(function(){ resolve(3); }, 1000); }); } function addAB(a,b){ return a+b }
function getResult(){ var obj={}; Promise.resolve().then(function(){ return getA() }) .then(function(a){ obj.a=a; }) .then(function(){ return getB() }) .then(function(b){ obj.b=b; return obj; }) .then(function(obj){ return addAB(obj['a'],obj['b']) }) .then(data=>{ console.log(data) }) .catch(e => console.log(e)); } getResult();
|
方法2:(TODO)
方法3:(TODO)