在示例中(据我所知,也许我错过了路由器示例中的一些微妙之处),原始值是从 get 函数返回的。有没有办法在 get 函数中返回回调或承诺?最好的方法是什么?
现在,我猜我使用 Q.defer?
在示例中(据我所知,也许我错过了路由器示例中的一些微妙之处),原始值是从 get 函数返回的。有没有办法在 get 函数中返回回调或承诺?最好的方法是什么?
现在,我猜我使用 Q.defer?
Falcor 路由器文档中的示例使用了 Promise 。例如:
{
route: 'user.["name", "surname"]',
get: function(pathSet) {
// pathSet is ["user", ["name"]] or ["user", ["surname"]] or ["user", ["name", "surname"]]
if (this.userId == null) {
throw new Error("not authorized");
}
return userService.
get(this.userId).
then(function(user) {
// pathSet[1] is ["name"] or ["surname"] or ["name", "surname"]
return pathSet[1].map(function(key) {
return { path: ["user", key], value: user[key] };
});
});
}
}
userService.get
正在返回一个承诺,而不是直接消耗的值。所以任何符合承诺规范的东西都可以。