创建一个新的 promise 实例
在 function 里面调用方法后再结束时调用 resolve()
触发. then() 后面的事件
then() 里面应该 return 一个方法, 这样才能控制前面的方法执行完的前提下才执行 then 里的方法.
- let msg = 'aaa'
- function getInfo() {
- setTimeout(() => {
- console.log('Promise222');
- console.log(msg)
- }, 2000)
- }
- let promise = new Promise(function(resolve, reject) {
- msg = 'bbb'
- setTimeout(() => {
- console.log('Promise111');
- resolve()
- }, 3000)
- });
- promise.then(function() { return getInfo() })
多次遍历调用同一方法且要上一个执行完成后才执行下一个时
- // 多次遍历调用统一方法时
- function promise(val, await) {
- return new Promise(function(resolve, reject) {
- setTimeout(function() {
- console.log(val)
- resolve()
- }, await)
- })
- }
- promise('promise1', 5000).then(function() {
- return promise('promise2', 2000)
- }).then(function() {
- return promise('promise3', 1000)
- }).then(function() {
- alert('finished')
- })
- ```
来源: http://www.jianshu.com/p/e872ca7c80b6