作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想直接返回结果(通常我们尝试放入数据并访问该数据是的。但现在我想要的是直接返回结果)。就像当我们调用 hello()
函数时,我想返回 result
变量。我尝试像下面这样,但它没有返回是的。我该如何尝试?
hello: function() {
var result = "";
this.$http.get(window.location.href).success(function(data) {
result = data;
}).error(function (data, status, request) {
});
return result;
}
最佳答案
看起来它没有返回数据,因为请求是异步的。您的方法设置请求,然后在请求有机会将任何数据分配给 result
变量之前立即同步返回。
您可以尝试稍微更改一下代码:
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
标志会告诉您是否以及何时发生。
在我看来,使用 Promise 肯定会更好,例如使用jQuery Deferreds and promises ,或ES6 promises以及 polyfill .
关于javascript - 如何在不写入数据的情况下返回 Vue 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563993/
我是一名优秀的程序员,十分优秀!