返回的值是返回值(javascript)?

时间:2014-04-26 19:20:09

标签: javascript hottowel

我在HotTowel项目中看到了以下代码。在以下代码中,然后的回调方法返回值 return vm.messabeCount = data;

(function () {
    'use strict';
    function dashboard(common, datacontext) {
        vm.messageCount = 0;

        function getMessageCount() {
            return datacontext.getMessageCount().then(function (data) {
                /******* Here ********/
                return vm.messageCount = data;
            });
        }
    }
})();

我想知道为什么&对谁有回报价值。这是一些标准做法吗?代码不能只是。

return datacontext.getMessageCount().then(function (data) {
    vm.messageCount = data;
});

return datacontext.getMessageCount().then(function (data) {
    vm.messageCount = data;
    return;
});

1 个答案:

答案 0 :(得分:2)

getMessageCount是一个返回promise对象的函数。此承诺的then方法再次返回另一个promise。它可以链接多个then部分。每个then(function() { ... })都能够修改要传递给下一个then调用的数据。所以这个结构:

return datacontext.getMessageCount().then(function(data) {
    return vm.messageCount = data;
});

表示修改传递的数据以解决回调。如果没有此return成功函数将使用未定义的值解决,而我们需要使用data来解析它。