我如何 return Vue 资源而不放入数据?
How do I return Vue resource without putting to data?
我想 return 直接得到结果(通常我们尝试放入数据并访问该数据是的。但现在我想要的是直接的)。就像当我们调用 hello()
函数时我想要 return result
变量。
我尝试了以下操作,但没有 return 是的。我该如何尝试?
hello: function() {
var result = "";
this.$http.get(window.location.href).success(function(data) {
result = data;
}).error(function (data, status, request) {
});
return result;
}
看起来它没有 return 数据,因为请求是异步的。您的方法设置请求,然后在请求有机会将任何数据分配给 result
变量之前立即同步设置 returns。
您可以尝试稍微更改一下代码:
hello: function() {
var result = {};
this.$http.get(window.location.href).success(function(data) {
result.data = data;
result.ready = true;
}).error(function (data, status, request) {
});
return result;
}
这应该使您能够访问别处的数据(如 result.data
),但 仅在异步查询成功后 。 result.ready
标志会告诉您是否以及何时发生。
在我看来,使用 promises 肯定会更好,例如使用 jQuery Deferreds and promises, or ES6 promises along with a polyfill.
我想 return 直接得到结果(通常我们尝试放入数据并访问该数据是的。但现在我想要的是直接的)。就像当我们调用 hello()
函数时我想要 return result
变量。
我尝试了以下操作,但没有 return 是的。我该如何尝试?
hello: function() {
var result = "";
this.$http.get(window.location.href).success(function(data) {
result = data;
}).error(function (data, status, request) {
});
return result;
}
看起来它没有 return 数据,因为请求是异步的。您的方法设置请求,然后在请求有机会将任何数据分配给 result
变量之前立即同步设置 returns。
您可以尝试稍微更改一下代码:
hello: function() {
var result = {};
this.$http.get(window.location.href).success(function(data) {
result.data = data;
result.ready = true;
}).error(function (data, status, request) {
});
return result;
}
这应该使您能够访问别处的数据(如 result.data
),但 仅在异步查询成功后 。 result.ready
标志会告诉您是否以及何时发生。
在我看来,使用 promises 肯定会更好,例如使用 jQuery Deferreds and promises, or ES6 promises along with a polyfill.