promise

mac2026-10-04  0

promise

模拟异步请求 // 创建一个promise 对象 // resolve // reject 本身又是一个函数 new Promise((resolve, reject) => { setTimeout(() => { resolve() }, 1000); }).then(() => { console.log('第一次网络请求的到的数据'); return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, 1000); }) }).then(() => { console.log('第二次请求得到的数据 00'); }) promise 参数介绍 new Promise((resolve,reject)=>{ setTimeout(() => { // 如果方法成功则调用 resolve( data ) 方法 可以传递参数 对应接受的方法是 .then((data)=>{}) // 如果失败 可以调用 reject(err) 方法 可以把失败的参数传递出去 对应的接受方法是 catch((err)=>{}) // resolve('成功了') // reject('失败了') }, 1000); }).then((data)=>{ console.log(data); }).catch((err)=>{ console.log(err); })

Promise 第二种写法

new Promise((resolve,reject)=>{ setTimeout(() => { // 如果方法成功则调用 resolve( data ) 方法 可以传递参数 对应接受的方法是 .then((data)=>{}) // 如果失败 可以调用 reject(err) 方法 可以把失败的参数传递出去 对应的接受方法是 catch((err)=>{}) resolve('成功了') reject('失败了') }, 1000); // 只用 一个 then获取两个不同的参数 }).then((data)=>{ console.log(data); },(err)=>{ console.log(err); })

Promise.all 的使用

// Promise.all 的使用 模拟两个请求同时到达 Promise.all([ new Promise((resolve, reject) => { setTimeout(() => { resolve('第一个') }, 1000); }), new Promise((resolve, reject) => { setTimeout(() => { resolve('第二个') }, 2000); }) ]).then((data) => { console.log(data); })

模拟promise

// 模拟promiset function fn(ents) { // 创建一个fn的函数 ents是形参 当调用fn这个函数的时候 enst指向 function (data) { console.log(data);} var data='小明' // 创建一个变量 setTimeout(() => { // 模拟网络请求 ents(data) // enst // 调用 函数function(data) { console.log(data)} // 并传递一个data的实参 }, 1000) }; fn(function (data) { // 调用 fn函数 并向fn里面传递一个函数 console.log(data); })
最新回复(0)