promise的问题

刚刚接触了promise就自己写了一个demo试试,问一下

为什么我的then只会执行一次,怎么使他多次执行

    var test = 0;
    var promise = new Promise(resolve => {
        $('.btn').on('click',()=>{
            console.log(test++ +"----------")
            resolve(test)
        })
    })
    promise.then((data)=>{
        console.log(data+"*********")
    })

clipboard.png

阅读 2k
2 个回答
var test = 0;
$('.btn').on('click',()=>{
    console.log(test++ +"----------");
    Promise.resolve(test).then(successfn);
})

function successfn(data){
    console.log(data+"*********");
}

因为Promise不是这么玩的,一个Promise对象只能被resolve一次,或者被reject一次,就像一个请求(request)你只能回复(response)一次一样。你一定要用Promise的话,就只能每次click都搞一个新的Promise然后resolve,但这样没有意义。

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