javascript - promise求解
本文介绍了javascript - promise求解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
刚学廖学峰老师的es6教程,看到promise一段代码:
var p1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 500, 'P1');
});
var p2 = new Promise(function (resolve, reject) {
setTimeout(resolve, 600, 'P2');
});
// 同时执行p1和p2,并在它们都完成后执行then:
Promise.all([p1, p2]).then(function (results) {
console.log(results); // 获得一个Array: ['P1', 'P2']
});
有两个疑问:1.为什么最后的到的是一个数组?2.为什么可以这样写setTimeout(resolve, 500, 'P1');?
解决方案
1.看看promise.all https://developer.mozilla.org...
主要是等p1跟p2 resolve了才返回(或者报错),那么results应该是p1跟p2里的执行结果,作为数组也很合理吧
2.settimeout 可以接受第三个参数甚至……
https://developer.mozilla.org...
其将作为回调函数的参数传递进去,也就是打个比方
setTimeout(resolve, 500, 'P1');
等回调的时候,就执行resolve('P1')
;
这篇关于javascript - promise求解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文