javascript - 如何在不写入数据的情况下返回 Vue 资源?

标签 javascript javascript-framework vue.js

我想直接返回结果(通常我们尝试放入数据并访问该数据是的。但现在我想要的是直接返回结果)。就像当我们调用 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/

相关文章:

css - 如何覆盖填充 : 0; from sass?

javascript - 使用node.js从url下载文件到服务器

javascript - 一个 Angular CSS 绘图

javascript - 访问 Meteor 1.4 中的 {{> atForm}} 模板

jquery - 我应该从prototype转到jquery吗?

javascript - Vue 使用 vuex 从另一个组件控制和更新状态

javascript - 在 JavaScript 中存储非常大的二进制数的最佳方法是什么?

javascript - 比较 YUI 和 Ext JS

javascript - ExtJS4 更改数据存储参数

vue.js - Vue 3 prop 没有被传递