javascript - promise求解

查看:104
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆