回调完成后分配变量

时间:2014-01-05 04:50:39

标签: javascript backbone.js asynchronous

我正在设置

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

但由于它是一个异步操作,我需要等待分配变量,直到回调完成后。我该怎么做?

1 个答案:

答案 0 :(得分: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;
}))();

从那里开始,你可能想要将一个函数链接到promise - 这是技术性的,所以我只是给出简单的答案并说你可以使用回调来传递x你需要的地方:

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