网站地图    收藏   

主页 > 采坑 > 前端采坑 > javascript常见API采坑 >

promise只执行一次问题

来源:未知    时间:2021-04-27 18:43 作者:小飞侠 阅读:

[导读] 在我们封装异步回调时候,接触过es6同学首先想到的是promise. 比如: functionp(){returnnewPromise((resolve,reject)={resolve(ok)reject(error)//或者})}p().then(res={console.log(res)}).catch(er={console.log(er)}) 但是需...

在我们封装异步回调时候,接触过es6同学首先想到的是promise.

比如:

function p(){
    return new Promise((resolve, reject)=>{
        resolve('ok')
        reject('error') // 或者
    })
}
p().then(res => {
    console.log(res)
})
.catch(er => {
    console.log(er)
})

但是需要注意的是promise的then只执行一次,这点需要注意:

Promise只能执行一次这一点是不会改变的

如果要涉及到时时回调比如:window.resize, window.scroll 等处理,建议用传统的 callback 方法解决!

function test(fn){
    widnow.resize = function(){
     fn && fn()
    }
}
test(() => { console.log('我被执行拉!') })

以上代码只是粗略实现,业务中针对处理,有时候需要加节流哦!!

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论