Поддерживает ли маршрутизатор FalcorJS возврат обещаний?
В примерах (насколько я могу судить, возможно, я пропустил некоторые тонкости в примерах маршрутизатора), необработанные значения возвращаются из функции get. Есть ли способ вернуть обратный вызов или обещание в функции get? Какой лучший способ сделать это?
На данный момент, я думаю, я использую Q.defer?
1 ответ
Примеры в документации по Falcor Router используют обещания. Например:
{
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
возвращает обещание и не является непосредственно потребляемой стоимостью. Так что все, что соответствует спецификации обещания, подойдет.