javascript - Promise的用法

查看:141
本文介绍了javascript - Promise的用法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

使用ES6的Promise,一般把一个异步的函数,用Promise包一层:


var test = function(data){

  return new Promise(function(resolve,reject){

      try{

        if(data.statue === "SUCCESS"){
         
         resolve(data);
        
        }else{
        
         reject(data);
         
        }

      }catch(e){

        reject(e)

      }
  
  })

}

但是我了解到,可以直接使用promise对象,可以不用它来包裹任何异步(或同步)过程:


var promise = new Promise(function(resolve,reject){

   // ...
   resolve(999);

})

promise.then(function(value){
   console.log(value); // 999
}).catch(function(error){
   console.error(error);
})

请问这种直接使用的方式,主要用在什么场景下?

解决方案

你说的直接使用的场景是这样?

var promise = new Promise(function(resolve,reject){
    //空实现
})

里面是空实现?那我告诉你没有这种使用场景,因为这种用法永远也不会被resolve或者reject。 所以无意义

根据问题修正:

通常也不会按你的那种写法,太啰嗦。 简写是这样的

Promise
    .resolve(999)
    //链式可能

这种用法是因为,后面可能有一系列能被(或者需要被)链式调用的操作,他们也需要一个Promise作为起始点

这篇关于javascript - Promise的用法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆