promise

简单实例

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的返回的参数进行处理

你可能感兴趣的:(promise)