Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Deferred.done回调的JSDoc_Javascript_Jquery_Callback_Jquery Deferred_Jsdoc - Fatal编程技术网

Javascript jQuery Deferred.done回调的JSDoc

Javascript jQuery Deferred.done回调的JSDoc,javascript,jquery,callback,jquery-deferred,jsdoc,Javascript,Jquery,Callback,Jquery Deferred,Jsdoc,我希望创建足够的文档,并为返回延迟对象的函数启用提示。用JSDoc记录Deferred.done回调的正确方法(如果有)是什么?到目前为止,我已经: /** * Creates component element. * @param {Object} settings * @returns {Deferred} */ $.fn.customDialogue.createElement = function (settings) { var deferred = $.fn.dial

我希望创建足够的文档,并为返回延迟对象的函数启用提示。用JSDoc记录Deferred.done回调的正确方法(如果有)是什么?到目前为止,我已经:

/**
 * Creates component element.
 * @param {Object} settings
 * @returns {Deferred}
 */
$.fn.customDialogue.createElement = function (settings) {
    var deferred = $.fn.dialogue.createElement(settings);
    $.when(…).done(function (dialogueElement) {
        deferred.resolve(dialogueElement.customDialogue(settings));
    });
    return deferred;
};
我想在文档中指出,返回的延迟的
done()
回调接受
@param{jQuery}元素
,例如:

$deferred.done(function(element){
    …
});
编辑: 我使用的是PhpStorm,它不完全支持JSDoc,但是下面的代码似乎可以工作。发布一个更好的解决方案,如果你知道的话

/**                                                                                              
 * @function                                                                                     
 * @name Deferred.done                                                                           
 * @param {function(element:jQuery)} callback                                                    
 */                                                                                              

/**                                                                                              
 * Creates new component element and returns a deferred object.                                  
 * @param {Object} settings                                                                      
 * @returns {Deferred}                                                                           
 */                                                                                              
$.fn.customDialogue.createElement = function (settings) {
    var deferred = $.fn.dialogue.createElement(settings);
    $.when(…).done(function (dialogueElement) {
        deferred.resolve(dialogueElement.customDialogue(settings));
    });
    return deferred;
};          

看起来是这样的:

deferred.done(function(){deferred.resolve(…)})
没有任何意义。承诺只能解决一次。鹰眼!还有一个承诺可以解决主要问题。更新了代码,感谢您指出@Bergi。