我有以下代码,使用result
从func1
获取callback1
。但是func1
正在func2
使用callback2
,然后依赖于第二个回调返回result
或使用func3
和callback3
来获取result
1}}。不知道在哪里放置另一个回调来获得一个result
。
module1.func1(arg1, function (callback1) {
module1.func2(arg2, function (callback2) {
if (result2) result = result2;
else
module2.func3 (arg3, function (callback3) {
result = result3;
})
})
});
如果我向func3
添加另一个回调,则只有在我无法立即从func2
获得结果的情况下才会有效。也许这就是我所需要的,模式对我来说太复杂了
module.exports = function (callback) {
module1.func1(arg1, function (callback1) {
module1.func2(arg2, function (callback2) {
if (result2) result = result2;
else
module2.func3 (arg3, function (callback3) {
result = result3;
callback(result) //???
})
})
});
};
答案 0 :(得分:2)
嵌套回调地狱可以通过promisses在最近的JavaScript版本中解决。网上的众多资源之一是
https://github.com/mattdesl/promise-cookbook
ES6中有Promisses,但也有几个库。我希望这可以让你知道要寻找什么。