Dans Swift Express utilisant Bright Futures, comment gérer les opérations asynchrones?

J’essaie de créer un exemple asynchrone de base dans SwiftExpress en utilisant BrightFutures et en échec. Voici ce que j’ai:

class FileSystem { class func read(fileURL:NSURL, convert:(NSData?) -> Action) -> Future<Action, AnyError> { let promise = Promise<Action, AnyError>() Queue.global.async { let fileData = NSData(contentsOfURL:fileURL) let action = convert(fileData) promise.success(action) } return promise.future } } 

Voici le serveur:

 import Express import TidyJSON import BrightFutures import Result let app = express() app.views.register(JsonView()) // Parameters: JSON object {"filePath" : ""} app.post("/readFile") { request -> Future<Action, AnyError> in //check if JSON has arrived guard let json = request.body?.asJSON(), let jsonDict = json.object, let filePath = jsonDict["filePath"], let filePathSsortingng = filePath.ssortingng else { return future { var response = [ "status": "error", "message" : "Invalid request" ] return Result(value: Action.render(JsonView.name, context: response)) } } print("json: \(json)") print("json: \(json.object)") let url = NSURL(fileURLWithPath: filePathSsortingng) return FileSystem.read(url, convert: { data -> Action in var response = [Ssortingng:AnyObject]() var status:Ssortingng if data == nil { status = "error" response["message"] = "Could not read file" } else { status = "ok" response["result"] = data! } response["status"] = status return Action.render(JsonView.name, context: response) }).onSuccess { action in print("action: \(action)") } } app.all("/*") { request in return Action.ok("Got a unknown request.") } app.listen(9999).onSuccess { server in print("Express was successfully launched on port", server.port) } app.run() 

Lorsque je me connecte à ceci en utilisant Postman, j’obtiens un {} en réponse. Je peux définir des points d’arrêt, et je sais que le code est en cours d’exécution, et je sais que j’ai une erreur (il ne peut pas trouver le fichier intentionnel de ma part), mais je ne vois pas pourquoi la réponse ne contient pas l’erreur statut et message Des idées?

Problème résolu! Une seule ligne était incorrecte:

 var response = [Ssortingng:AnyObject]() 

devait être:

 var response = [Ssortingng:Ssortingng]()