问答详情
源自:5-3 认识$.Deferred的接口

resolve和done触发时机先后的问题

事件绑定和触发的时机比较诡异。可以先defer.resolve再defer.done。难道这个resolve是延迟执行的吗?

提问者:xp26538 2015-07-31 11:31

个回答

  • 慕慕7300641
    2018-07-31 09:40:47

    defer.resolve 就是callbacks的fireWith方法,defer.done就是callbacks的add方法,callbacks的类型是once memory

  • 慕雪5194257
    2016-08-30 18:33:25

    你需要理解:[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ]的意思。

    once memory模式下执行defer.resolve后,执行的结果会保存下来。之后通过done方法附加的函数都会理解执行并把resolve执行保存的结果传递给函数。

  • Puchen
    2015-07-31 14:20:47

    defer只能观察一个defer状态