在处理网络服务数据中,为什么不需要 m.prop?

In Processing web service data, Why m.prop is not required?

Note that this getter-setter holds an undefined value until the AJAX request completes.

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

但是没有使用下面的代码m.prop。为什么?

您是否以不同的方式设置了默认值?

//model
var User = {}

User.listEven = function() {
    return m.request({method: "GET", url: "/user"}).then(function(list) {
        return list.filter(function(user) {return user.id % 2 == 0});
    });
}

//controller
var controller = function() {
    return {users: User.listEven()}
}

如果上面的代码没问题,后面的就没用了?

var doSomething = function() { /*...*/ }
m.request({method: "GET", url: "/user"}).then(doSomething)

https://lhorie.github.io/mithril/mithril.request.html

listEven 代码有效,因为 m.propm.request returns 都是 GetterSetter,但是当使用 m.requestGetterSetter 将填充从 promise 返回的值。挺方便的。

在最后一个例子中没有涉及 GetterSetter,这是一个简单的 promise 用法。所以这三个例子都可以正常工作。要决定哪一个是最好的,你必须看你的具体情况。