Open lidongyangLeo opened 2 years ago
Promise 是ECMAScript 6提供的类,目的是更加优雅地书写复杂的异步任务。 Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
Promise
在Promise 出现之前。
比如我们需要在在请求API1成功之后,在请求API2, 然后在API2请求成功之后,请求API3
request.onreadystatechange = function () { if (request.readyState === 4) { if (request.status === 200) { // request2 api2 request2.onreadystatechange=function() { if (request2.readyState === 4) { if (request2.status === 200) { // request3 api3 } } } return success(request.responseText); } else { return fail(request.status); } } }
另一个最简单的Promise 例子: 生成一个0-2直接的随机数,如果小于1,则等待一段时间后返回成功,否则返回失败。
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);
Promise
Promise
是ECMAScript 6提供的类,目的是更加优雅地书写复杂的异步任务。Promise
对象用于表示一个异步操作的最终完成 (或失败)及其结果值。状态
在Promise 出现之前。
场景
比如我们需要在在请求API1成功之后,在请求API2, 然后在API2请求成功之后,请求API3
另一个最简单的Promise 例子: 生成一个0-2直接的随机数,如果小于1,则等待一段时间后返回成功,否则返回失败。