【发布时间】:2016-03-16 19:07:43
【问题描述】:
我有一个疑问.. 如果我在承诺的 .then() 之前定义变量,我可以在 .then() 中使用它们,对吗?回调不是这样,但它应该使用q 承诺。
为了确定这一点,我询问以下代码是否正确,即使在多个请求的情况下也是如此。
所以第二个.then() 的arg2 总是正确的,而不是最后一次调用myapp() 的arg2。
function myapp()
{
var arg1=1;
var arg2=undefined; // loaded async
var arg3=undefined; // loaded async
call_promise(arg1)
.then(function(data)
{
arg2 = data;
})
.then(function()
{
arg3 = call_function(arg2);
console.log(arg3);
})
.catch(function(err){});
}
【问题讨论】:
-
它也适用于非承诺回调。
-
@Joe mmh 也许不是,但谢谢你,这是一个有趣的讲座。阅读以这种简单方式解释的一些理论总是很好
-
只是说,this is a horrible pattern :-)
-
:P 是的,我也不喜欢它,正如@thefourtheye 所建议的那样,使用返回要好得多。感谢您提供解释链接
标签: javascript promise q