我正在开发一个 Nodejs 应用程序并使用 bluebird.js - Promise。我有一个方法,我想在链中执行每个 .then() 方法之后调用该方法。 bluebird.js 中是否有支持此功能的方法(或 API)?
谢谢。
最佳答案
您可以为此使用 bluebird 监控 API。
Promise.config({
monitoring: true
});
监听promiseChained
事件来检测then
是否被链接,然后监听promiseFulfilled
事件来了解回调何时执行:
var candidates = new WeakSet(); // a set for our promises that were chained
process.on('promiseChained', (_, {promise, child}) => {
candidates.add(child);
});
process.on('promiseFullfilled', (_, {promise}) => {
if(candidates.has(promise)) {
callYourFunctionHere(); // HERE
}
});
这将在执行的每个 then
处理程序上执行,如果您想针对特定 then 执行它,在添加到候选者之前 - 检查如果promise
(参数)是链接到的promise或者它在集合中(所以它是链的一部分)。
关于javascript - 在每个 Promise.then 函数之后执行一个通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524970/