使用承诺或任何其他合适的方式将函数中的variables传递给父范围

我如何将var form.parse()的值从form.parse()传递给response.write()以便我可以输出它?

类似的问题的答案build议使用承诺,但是,如果这是做到这一点,我将不胜感激在如何申请承诺在这种情况下

 var formidable = require("formidable"); function upload(response, request) { var form = new formidable.IncomingForm(); form.on('fileBegin', function(name, file, flower) { file.path = './uploads/' + file.name; var flowerImage = file.name ; }); form.parse(request, function(error, fields, files ) { }); response.writeHead(200, {"Content-Type": "text/html"}); response.write("image name is " + flowerImage); response.end(); } 

你只需要在callback本身上返回响应

 function upload(response, request) { var form = new formidable.IncomingForm(); form.on('fileBegin', function(name, file, flower) { file.path = './uploads/' + file.name; var flowerImage = file.name ; this.writeHead(200, {"Content-Type": "text/html"}); this.write("image name is " + flowerImage); this.end(); }.bind(response)); } 

声明var flowerImage接下来不是var form

编辑 :我的坏…花图像创build使用asynchronous调用…这已被多次回答。

请参阅如何从asynchronous调用返回响应?