为了账号安全,请及时绑定邮箱和手机立即绑定

怎么解决promise只执行一次的问题

怎么解决promise只执行一次的问题

哔哔one 2019-05-12 09:41:30
下面是一个简单的promise调用newPromise(function(success,){setTimeout(function(){success()},1000);}).then(function(){console.log(1)});可以看到,控制台能够输出1Promise的then方法可以做到回调功能,但是如果是这种情况呢?functiontest(back){setInterval(function(){back()},1000)}test(function(){console.log(1);});//可以不停的输出1而如果用promise做不到:newPromise(function(success,){setInterval(function(){success()},1000);}).then(function(){console.log(1)});Promise除了then,catch还有隐藏的高级功能么?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

Promise只能执行一次这一点是不会改变的但是可以根据不同的业务来进行封装重复调用你可以每次重新声明一个Promise来调用
functionp(){
returnnewPromise(resolve=>{
setTimeout(resolve,1000)
}).then(()=>{
console.log(1)
})
}
setInterval(p,1000)
                            
查看完整回答
反对 回复 2019-05-12
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

题主没有给出应用的场景,简单说一下我的理解(也是小白兔阶段);首先个人认为题主看待Promise有一点点偏激,并非一切情况都要使用Promise的then,链式调用是为了解决异步的可读性和可维护性的问题,题主当前的情况完全可以return一个立即执行的fn(也就是用不上then关键字);其次,Promise是会有一些其他关键字,比如all,join,map(这个不确定)等等,是适用不同情况的请求场景;最后,以上只是个人见解,可能因为学习所限会有理解错误和偏差,请题主权当参考.
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 1139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信