jquery里面的resolveWith

jquery里面的resolveWith怎么都是直接用,我没看见里面其他地方定义过resolveWith函数或者对象属性方法啊。比如readyList.resolveWith( document, [ jQuery ] );在哪定义的呢

阅读 3.2k
1 个回答
// Add list-specific methods
jQuery.each( tuples, function( i, tuple ) {
    var list = tuple[ 2 ],
        stateString = tuple[ 3 ];

    // promise[ done | fail | progress ] = list.add
    promise[ tuple[1] ] = list.add;

    // Handle state
    if ( stateString ) {
        list.add(function() {
            // state = [ resolved | rejected ]
            state = stateString;

        // [ reject_list | resolve_list ].disable; progress_list.lock
        }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
    }

    // deferred[ resolve | reject | notify ]
    deferred[ tuple[0] ] = function() {
        deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
        return this;
    };
    deferred[ tuple[0] + "With" ] = list.fireWith;
});

jquery2.1.4源码里的,看最后一行。在Deferred的声明里找 3304行

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