最近用bluebird
在使用Promise.all
的时候发现一个问题(不能算是问题,是我不解的地方),直接上代码:
var fun_A = function (i) {
console.log('fun_A:', i);
return Promise.resolve(i);
}
var tasks = [fun_A(1);
tasks.push([fun_A(2));
//代码到这里,我还没调用Promise.all执行tasks,直接运行代码会输出:
fun_A: 1
fun_A: 1
//即我把函数添加到tasks数组里的时候,添加进去的函数已经被调用了
//按道理不应该是我调用了Promise.all(tasks)的时候才会输出的吗?也就是调用Promise.all(tasks)才会执行我tasks里的函数的吗?