javascript - return 将值返回给谁(javascript)?

标签 javascript hottowel

我在 HotTowel 项目中看到了以下代码。在以下代码中,then 的回调方法返回值 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;
            });
        }
    }
})();

我想知道为什么以及它向谁返回值(value)。这是一些标准做法吗?代码不就可以了吗?

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

或者

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

最佳答案

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

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

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

关于javascript - return 将值返回给谁(javascript)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23315473/

相关文章:

javascript - 通过单击 ReactJS 中的 Material-UI float 操作按钮来切换 Dialogflow 聊天窗口

javascript - 是否有用于 JavaScript 的 native 机器代码编译器?

jquery - Hottowel SPA View 模型和 jquery

javascript - 在 Hot Towel/Durandal 单页应用程序中加载 View (激活)时调用函数

security - durandal mvc 应用程序身份验证安全性

javascript - dijit/form/numbertextbox 的设置值设置 displayedValue -- 而不是 value

javascript - 如何否定javascript数组中的所有元素

javascript - jQuery:动画完成后更改背景颜色

durandal - Durandal 中的条件路由

javascript - 如何: Get Durandal (or Backbone) router history and pass to window.一些全局变量?