Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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官方示例:;然后()_Javascript_Jquery - Fatal编程技术网

Javascript jQuery官方示例:;然后()

Javascript jQuery官方示例:;然后(),javascript,jquery,Javascript,Jquery,我认为'filtered.done()'之后的'defer.resolve(5)'是正确的,但为什么两者都有相同的结果呢 var filterResolve = function() { var defer = $.Deferred(), filtered = defer.then(function( value ) { return value * 2; }); defer.resolve( 5 ); filtered.done(function(

我认为'filtered.done()'之后的'defer.resolve(5)'是正确的,但为什么两者都有相同的结果呢

var filterResolve = function() {
  var defer = $.Deferred(),
    filtered = defer.then(function( value ) {
      return value * 2;
    });

  defer.resolve( 5 );

  filtered.done(function( value ) {
    $( "p" ).html( "Value is ( 2*5 = ) 10: " + value );
  });
};

var defer=$.Deferred(),
过滤=延迟。然后(函数(值){
返回值*2;
});
推迟。决议(5);
$(“按钮”)。在(“单击”,函数(){
过滤完成(函数(值){
$(“p”).html(“值为(2*5=)10:”+Value);
});
});

过滤解析

无论何时执行
解析
,这都是承诺的要点-每当解析发生时,都会执行已注册的处理程序。如果解析在过去已经发生过,那么处理程序会立即执行(可能排队)。函数是异步的,所以在解析第一个时并不重要defer@Chips_100. 你是对的。谢谢你指出这一点。
var filterResolve = function() {
  var defer = $.Deferred(),
    filtered = defer.then(function( value ) {
      return value * 2;
    });

  filtered.done(function( value ) {
    $( "p" ).html( "Value is ( 2*5 = ) 10: " + value );
  });

  defer.resolve( 5 );
};