您可以通过将其作为a传递来绑定预先存在的getter-setter .then方法的参数:
确定
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? 要么 这个语法的规格是Mithril?
※我能理解m.prop()是getter-setter。
内部针对Promise对象运行什么类型的处理?
实现是库代码的哪一部分?
答案 0 :(得分:2)
这是正常Promise行为的一部分。传递给then
的函数将在Promise解析并将Promise值传递给它时执行。 m.prop
是一个getter / setter,它将内部值设置为传入的内容,并将其返回。
在第一个示例中,第一个then
将Promise值赋给users
,下一个then
执行一个函数,该函数接收Promise值作为第一个参数({{1} }},并记录它,以及data
的返回值,这是同样的事情。
在第二个示例中,第二个users
函数为它的参数then
命名:这意味着在该函数中,users
引用了Promise值而不是users
。由于您已将变量命名为m.prop
,因此您无法再引用该m.prop
。