2014-01-05 89 views
0

我設置變量賦值後回調完成

var x = (collection.fetch({context:collection}).done(function() { 
      return this.length; 
     }))(); 

,但因爲它是一個異步操作,我需要等待變量分配回調結束後,直到。我將如何做到這一點?

+0

你能不能做任何直接在'.done()'回調需要與結果? – nnnnnn

+0

@nnnnnn我需要''.done()'回調嗎? – user3161730

+0

你將不得不提供更多的上下文。最可能的解決方案是將所有關心'x'的內容移動到'done'回調中。或者收聽「收藏」上的事件並對它們做出反應。 –

回答

0

done()函數本身中分配變量。

done(function() { 
    //this runs when the asynchronous action is finished. 
    var x = 'my value'; 
}))(); 

有沒有辦法知道你通過你的評論是什麼意思,但它聽起來像是你只是想這樣做:

done(function() { 
    //this runs when the asynchronous action is finished. 
    var x = this.length; 
}))(); 

,但我不知道this.length;指...所以我不能說。有可能提供給done()功能也有一些數據...也許你想要的:

done(function(response) { 
    //this runs when the asynchronous action is finished. 
    var x = response; 
}))(); 

從那裏,你可能想鏈的承諾的功能 - 這就是技術,所以我打算只給簡單的回答說,你可以再使用一個回調來傳遞x在你需要它:

done(function() { 
    //this runs when the asynchronous action is finished. 
    var x = this.length; 
    someFunction(x); 
}))(); 
+0

我需要done函數中的變量。 – user3161730