浅析Promise对象用法

在饱尝了利用函数执行栈书写异步代码的痛苦后,人们创造出了Promise对象,异步

做为在ES6中被统一规范的对象,它用来在函数中将函数逻辑与结果处理分隔开来,函数

该对象提供了两个参数,resolve以及reject。这两个参数都是函数,下面是使用spa

Promise对象的简单代码示例:code

 1 var fn=function(num){
 2     return new Promise(function(resolve,reject){
 3         if(typeof num=='number'){
 4             resolve();
 5         }else{
 6             reject();
 7         }
 8     });
 9 }
10 
11 fn(2).then(function(){
12     console.log('输入了一个数字!');
13 }).catch(function(){
14     console.log('输入的不是一个数字!');
15 });

上面是一个简单逻辑判断输入函数fn的参数是否为数字的代码,其中函数体fn执行返回一个Promise对象,对象

若是结果达到预期,执行resolve(),反之执行reject()。在函数执行时,resolve对应then,reject对应catch,blog

根据这种一一对应关系,咱们能够轻易对函数结果进行操做。值得一提是,then函数含有两个参数,第一io

个对应resolve,而第二个对应reject。因此实际上catch(()=>{})等价于then(null,()=>{}).console

另外,Promise的应用场景很是普遍,好比咱们使用的不一样AJAX请求中的有依赖的数据传递等。function

相关文章
相关标签/搜索