包装在promise JavaScript泛型函数中
Wrap in promise JavaScript generic function
我如何包装一个可以有同步/a-sync功能的函数与承诺?
我调用了如下的函数
action[fn](req, res);
函数fn中的(在下面的例子中)可以在内部(我对每个函数使用动态调用)同步或 a-sync,如下面的例子,
- 建议如何将它包装在promise中
我使用nodeJS应用程序
run: function (req, res, filePath) {
var writeStream = fs.createWriteStream(fileRelPath, {flags: 'w'});
req.pipe(writeStream);
req.on("end", function () {
console.log("Finish to update data file")
});
res.end("File " + filePath + " saved successfully");
}
例如,我们可以使用Q库和defer,如下所示:
run: function (req, res, filePath) {
var d = Q.defer();
var writeStream = fs.createWriteStream(fileRelPath, {flags: 'w'});
req.pipe(writeStream);
req.on("end", function () {
console.log("Finish to update data file");
d.resolve();
});
req.on("error", function (err) {
d.reject(err);
});
return d.promise.then(function(){
res.end("File " + filePath + " saved successfully");
}).catch(function(err){
//handle error
})
}
在这段代码中,promise将在req结束事件后解析,然后是res.end,但我建议创建另一个方法来完成响应,并从方法run中使用promise。好运!
相关文章:
- 在NativeScript中使用泛型参数扩展Android类
- 序列化表单数据并发布到泛型处理程序
- 有没有一种方法可以在泛型(<T>)函数/类(Typescript)中获取泛型类型的名称
- node.js 使用 function.prototype.apply 执行的泛型函数
- 如何使用闭包编译器在 javascript 中注释扩展泛型类型的类
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- AngularJS 返回加载控制器的泛型函数
- 泛型函数
- 根据泛型函数中的参数动态添加ajax处理程序
- 更新DIV的泛型函数
- 泛型函数,用于在输入更改元素值时隐藏该元素
- 泛型函数:JavaScript或PHP
- 泛型池函数返回回调的结果
- Jquery链接泛型回调函数
- 创建一个泛型函数
- 包装在promise JavaScript泛型函数中
- 返回泛型的TypeScript工厂函数
- 通过泛型JS函数调用AJAX后发生的调试PHP错误
- 如何使 js 函数泛型在我的表单上的任何地方工作?(干)
- 如何编写一个泛型函数,该函数将一个参数传递给然后调用多次的函数