为什么通过将它作为参数传递给 .then 方法,我可以绑定一个预先存在的 getter-setter 吗?

Why by passing it in as a parameter to a .then method, can I do bind a pre-existing getter-setter?

You can bind a pre-existing getter-setter by passing it in as a parameter to a .then method:

好的

var users = m.prop([]); //default value
m.request({method: "GET", url: "/user"}).then(users).then(function(data) {
    console.log(data);
    console.log(users());
});

NG

var users = m.prop([]); //default value
m.request({method: "GET", url: "/user"}).then(function(users) {
    console.log(users);
    console.log(users()); //Uncaught TypeError: users is not a function
});

为什么将它作为参数传递给 .then 方法,我可以绑定一个预先存在的 getter-setter 吗?

这个语法的规范是Promise? 要么 这个文法的规格是秘银?

※我可以理解m.prop()是getter-setter.


运行 内部针对 Promise 对象进行了什么样的处理?

实现是库代码的哪一部分?

这是正常 Promise 行为的一部分。传递给 then 的函数将在 Promise 解析并将 Promise 值传递给它时执行。一个 m.prop 是一个 getter/setter,它将把它的内部值设置为传入的任何值,然后 returns 它。

在第一个示例中,第一个 then 将 Promise 值分配给 users,然后下一个 then 执行一个接收 Promise 值作为第一个参数的函数(data), 并记录它,连同 users 的 return 值,这是一回事。

在第二个示例中,第二个 then 函数将其参数命名为 users:这意味着在该函数中,users 指的是 Promise 值而不是 m.prop.因为您已为变量指定了与 m.prop 相同的名称,所以您不能再引用那个 m.prop