Promise的基本概念 Promise是一个异步操作的容器,其中封装了一个未来才会结束的操作(一般指网络请求、读写文件等)。当Promise执行时,可以把需要执行的代码放在then()方法里面,当Promise成功执行结束后,会调用then()的第一个回调函数进行后续操作,如果执行失败,则调用then()的第二个回调函数进行后续操作。
Promise的实例 下面是一个Promise实例的示例代码:
const promise = new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() < 0.5) { resolve('成功'); } else { reject('失败'); } }, 1000); });
promise.then((result) => { console.log(result); // 成功 }).catch((error) => { console.log(error); // 失败 });
在这个示例中,我们创建了一个Promise实例,其参数是一个函数,函数里执行了一个setTimeout()函数。如果生成的随机数小于0.5,则Promise调用resolve()方法,表示执行成功,并传递一个字符串的参数;如果生成的随机数大于等于0.5,则Promise调用reject()方法,表示执行失败,并传递一个字符串的参数。在Promise实例上调用then()方法,可以分别设置Promise执行成功和执行失败的回调函数;调用catch()方法可以捕获Promise实例中的错误信息。
const promise1 = new Promise((resolve, reject) => { setTimeout(() => { resolve('promise1'); }, 1000); });
const promise2 = new Promise((resolve, reject) => { setTimeout(() => { resolve('promise2'); }, 2000); });
const promise3 = new Promise((resolve, reject) => { setTimeout(() => { resolve('promise3'); }, 3000); });
Promise.all([promise1