理解Promise
定义一个Promise对象(Promise的本质是一个构造函数)
resolve
和reject
是两个函数,如果new Promise(…)里面的内容成功就执行resolve
函数,失败就执行reject
函数。- 下面代码中的
setTimeout(resolve,millis)
意思是等待millis
毫秒后执行resolve函数
。
// 定义
const fun = millis => new Promise((resolve,reject)=>{
setTimeout(resolve,millis);
});
调用fun
函数
- 下面代码中的
1000
表示参数millis
.then()
里面的就是resolve
函数的内容,即成功时调用.catch()
里面的就是reject
函数的内容,即失败时调用
// 调用
fun(1000).then(()=>{console.log("成功")}).catch(()=>{console.log("失败")});
看到这里可以做一下力扣的#睡眠函数这道题检验一下是否掌握Promise对象
我的解题代码如下:
/**
* @param {number} millis
* @return {Promise}
*/
async function sleep(millis) {
return new Promise((resolve,reject)=>{
setTimeout(resolve,millis);
})
}
/**
* let t = Date.now()
* sleep(100).then(() => console.log(Date.now() - t)) // 100
*/