下面是一个简单的promise调用new Promise(function(success,){
setTimeout(function(){success()},1000);
}).then(function(){
console.log(1)
});可以看到,控制台能够输出1Promise 的then方法可以做到回调功能,但是如果是这种情况呢?function test(back){
setInterval(function(){back()},1000)
}
test(function(){
console.log(1);
});//可以不停的输出1而如果用promise做不到:new Promise(function(success,){
setInterval(function(){success()},1000);
}).then(function(){
console.log(1)
});Promise 除了then,catch还有隐藏的高级功能么?
2 回答

慕斯709654
TA贡献1840条经验 获得超5个赞
题主没有给出应用的场景,简单说一下我的理解(也是小白兔阶段);
首先个人认为题主看待Promise有一点点偏激,并非一切情况都要使用Promise的then,链式调用是为了解决异步的可读性和可维护性的问题,题主当前的情况完全可以return一个立即执行的fn(也就是用不上then关键字);
其次,Promise是会有一些其他关键字,比如all
,join
,map
(这个不确定)等等,是适用不同情况的请求场景;
最后,以上只是个人见解,可能因为学习所限会有理解错误和偏差,请题主权当参考.

胡子哥哥
TA贡献1825条经验 获得超6个赞
Promise
只能执行一次这一点是不会改变的
但是可以根据不同的业务来进行封装
重复调用 你可以每次重新声明一个Promise
来调用
function p(){ return new Promise(resolve =>{ setTimeout(resolve,1000) }).then(()=>{ console.log(1) }) } setInterval(p,1000)
添加回答
举报
0/150
提交
取消