浅析Promise对象用法

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

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

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

Promise对象的简单代码示例:

 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,

根据这种一一对应关系,我们可以轻易对函数结果进行操作。值得一提是,then函数含有两个参数,第一

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

另外,Promise的应用场景非常广泛,比如我们使用的不同AJAX请求中的有依赖的数据传递等。

猜你喜欢

转载自www.cnblogs.com/yjpfront-end/p/9765981.html