总是会看到Promise,一直不知道具体是干嘛用的,学习一下~~~ 1、异步async&同步sync 首先需要了解一下同步和异步。 同步模式,一次只能执行一个任务,函数调用后需等到函数执行结束,返回执行的结果,才能进行下一个任务。如果这个任务执行的时间较长,就会导致「线程阻塞」。 异步模式,即与同步模式相反,可以一起执行多个任务,函数调用后不会立即返回执行的结果,如果任务A需要等待,可先执行任务B,等到任务A结果返回后再继续回调。 定时器就是一个典型的异步模式,异步任务会在当前脚本的所有同步任务执行完才会执行。 2、Promise
//构建Promise var promise = new Promise(function (resolve, reject) { if (/* 异步操作成功 */) { resolve(data); } else { /* 异步操作失败 */ reject(error); } }); 类似构建对象,我们使用
Promise实例生成以后,可以用
promise.then(onFulfilled, onRejected); promise.then(function(data) { // do something when success }, function(error) { // do something when failure }); 简单来说, function resolveFun(data) { //data为promise传出的值 } 而新建Promise中的'resolve(data)',则相当于执行resolveFun函数。 var promise = new Promise(function(resolve, reject) { console.log('before resolved'); resolve(); console.log('after resolved'); }); promise.then(function() { console.log('resolved'); }); console.log('outer'); -------output------- before resolved after resolved outer resolved 由于 |
|