请考虑以下代码:
var qq=$q(function(resolve, reject) {
setTimeout(function() {
if (true) {
console.log(qq);
resolve('Hello!');
console.log(qq);
} else {
...
}
}, 5000);
});
console.log(qq);
有三个console.log
命令。最后一个执行,它正确输出状态为0的promise对象。我正在等待console.log
内的第一个setTimeout
输出一个具有挂起状态(0)的promise对象,因为它在之前解决。但是,console.log
内的setTimeout
个命令都会输出已解决的状态为1的承诺。有人可以向我解释一下吗?