将 Promise Chain 提取到外部函数
Extracting Promise Chain to an external function
所以 Promise 使一切变得更加清晰,除了我如何将 promise 链的末端外推到外部函数之外?
例如:
SomePromise.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
SomePromise2.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
SomePromise3.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
不知何故,我想提取 then 和 catch,这样我就可以像这样将一个函数传递给 then:
SomePromise.then(handler);
SomePromise2.then(handler);
SomePromise3.then(handler);
我想我可以将整个 Promise 提取到一个函数中,并在其中传递参数,但这感觉有点笨拙。有什么优雅的解决方案吗?
编辑:我应该详细说明我关注的是捕捉部分。想象一下具有相同数据解析器和错误处理程序的多个不同查询。
编辑 2:事后看来,我现在意识到我可以推断
handler = () => {}
errorHandler = () => {}
Promise.then(handler)
.catch(errorHandler)
但是
let p1=Promise.resolve(1);
function handler(data){console.log(data)};
function errorHandler(error){console.log(error)};
p1.then(handler,errorHandler);
这里有很多东西,您期望的代码是:
SomePromise.then(处理程序);
不过实际应该是
函数处理程序(数据){};
SomePromise.then((数据)=>处理程序(数据));
所以 Promise 使一切变得更加清晰,除了我如何将 promise 链的末端外推到外部函数之外?
例如:
SomePromise.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
SomePromise2.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
SomePromise3.then(result => {
// do stuff here
}).catch(err => {
// do more stuff here
})
不知何故,我想提取 then 和 catch,这样我就可以像这样将一个函数传递给 then:
SomePromise.then(handler);
SomePromise2.then(handler);
SomePromise3.then(handler);
我想我可以将整个 Promise 提取到一个函数中,并在其中传递参数,但这感觉有点笨拙。有什么优雅的解决方案吗?
编辑:我应该详细说明我关注的是捕捉部分。想象一下具有相同数据解析器和错误处理程序的多个不同查询。
编辑 2:事后看来,我现在意识到我可以推断
handler = () => {}
errorHandler = () => {}
Promise.then(handler)
.catch(errorHandler)
但是
let p1=Promise.resolve(1);
function handler(data){console.log(data)};
function errorHandler(error){console.log(error)};
p1.then(handler,errorHandler);
这里有很多东西,您期望的代码是:
SomePromise.then(处理程序);
不过实际应该是
函数处理程序(数据){}; SomePromise.then((数据)=>处理程序(数据));