Promise resolve 的疑问

当第一次resolve了之后,如何重置resolve或Promise达到程序下一次resolve有输出

自己在写登录操作,有时候会遇到登录失败的情况,需要重置resolve或Promise,来达到再次发起登录请求时能有resolve

然而第一次resolve了之后,第二次以及更多,都无法再resolve....

如何重置resolve/Promise呢?

阅读 2.5k
2 个回答
let p;
    function login(isSuccess){
        if(!p){
            var d=new Promise((resolve,reject)=>{
                isSuccess?resolve():reject();
            });
            d.then(()=>p=d);
            return d;
        }
        return p;
    }
function test(){
  return new Promise(function(resolve){
    setTimeout(function(){
      resolve()
    })
  })
}

test().then(...)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题