理解promise 02

1:promise是什么?

  就是(链式)包装的回调函数.

2:语法

  new Promise( function(resolve, reject) {...} /* executor */ );

      executor是带有 resolve 和 reject 两个参数的函数 。Promise构造函数执行时立即调用executor 函数

3:怎么使用?

  promise.then(回调函数)   (注意可以有两个回调函数,resolve,reject)

4:注意执行顺序

setTimeout(function() {
console.log(1);
}, 0);

new Promise(function (resolve, reject) {
resolve(2);
}).then(console.log);

console.log(3);

 

process.nextTick(() => {
console.log('nextTick')
})
Promise.resolve()
.then(() => {
console.log('then')
})
setImmediate(() => {
console.log('setImmediate')
})
console.log('end')

5:加深理解

promise替代了下面这种旧式的函数,这种旧式函数需要两个回调函数,并最终调用处理成功事件或者处理失败事件的回调函数:

function successCallback(result) {
console.log("It succeeded with " + result);
}

function failureCallback(error) {
console.log("It failed with " + error);
}

doSomething(successCallback, failureCallback);
新式函数返回一个你可以直接绑定回调函数的promise对象,来代替旧式的函数形式:

const promise = doSomething();
promise.then(successCallback, failureCallback);
或者更简单的形式:

doSomething().then(successCallback, failureCallback);

 
 

 

posted @ 2018-06-06 11:48  wanhong  阅读(104)  评论(0编辑  收藏  举报