我发现每次处理承诺时都要做function ***(req, res){ ... }
很令人沮丧。所以我有一个想法,使顶部,参考对象代替,Req
和Res
let Req;
let Res;
// i can also do "const { username } = Req.body" to make "username" avaliable to all functions
function promise() { return Promise.resolve(); }
function promise2() { Res.send('test'); }
module.exports = (req, res, next) => {
Req = req
Res = res
return promise().then(() => promise2());
}
你对此有什么看法,赞成还是反对?如果这是反模式,请让我知道并建议一个首选的方式。
谢谢
不需要用request和res来解析每个promise(需要在单个对象中,因为你只能解析一个东西)。
你可以使用use这个模式。
function promise1(req, res) {
req.whatever = ''; // will be available in future promises
return Promise.resolve(foo); // you don't need to resolve req and res
}
function promise2(req, res) {
return function (foo) {
// whatever promise1 resolved to, will be here :)
res.send('test');
}
}
module.exports = (req, res, next) => {
return promise1(req, res)
.then(promise2(req, res));
}
在这种情况下,你没有提升你的Req和Res变量在你的模块的全局作用域(你真的不需要它是全局的,在这种情况下)