您可以将预先存在的getter-setter作为参数绑定到.then方法中:
OK
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吗?
这个语法的规范是有希望的吗?或者这个语法的规范是Mithril?
我能理解的m.prop()是getter-setter。
什么类型的处理在内部针对承诺对象运行的?
实现是库代码的哪一部分?
发布于 2015-12-26 16:28:17
这是正常承诺行为的一部分。传递给then的函数将在允诺解析并将允诺值传递给它时执行。m.prop是一个getter/setter,它将它的内部值设置为传入的任何内容,并返回它。
在第一个示例中,第一个then将允诺值分配给users,下一个then执行一个函数,该函数接收允诺值作为第一个参数(data),并将其与users的返回值(这是相同的)一起记录下来。
在第二个示例中,第二个then函数将它的参数命名为users:这意味着在该函数中,users引用的是允诺值,而不是m.prop。因为您已经给变量赋予了与m.prop相同的名称,所以不能再引用该m.prop。
https://stackoverflow.com/questions/34467786
复制相似问题