简单实例
function test(resolve, reject) {
var timeOut = Math.random() * 2;
log('set timeout to: ' + timeOut + ' seconds.');
setTimeout(function () {
if (timeOut < 1) {
log('call resolve()...');
resolve('200 OK');
}
else {
log('call reject()...');
reject('timeout in ' + timeOut + ' seconds.');
}
}, timeOut * 1000);
}
- 如上图在promisehan函数只关心自身的逻辑处理在符合条件返回resolve不符合就返回reject
var p1 = new Promise(test);
var p2 = p1.then(function (result) {
console.log('成功:' + result);
});
var p3 = p2.catch(function (reason) {
console.log('失败:' + reason);
});
- 在promise实例中执行的函数是test函数
上一段代码
.then会自动节后成功resolve的参数进行处理 .catch会接受test函数中rejecy的返回的参数进行处理