Javascript杂项

    科技2024-05-13  88

    prototype

    Promise

    链式编程

    常规写法

    new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ //此处对data进行进一步的处理 }).catch(error=>{ //此处捕捉错误 })

    另一种写法

    new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(函数1,函数2)//函数1为resolve回调函数,函数2为reject回调函数

    Promise的链式调用

    关于Promise的简写

    new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ //此处对data进行进一步的处理 return new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data1 data1 = process(data) resolve(data1) }) }) new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ //此处对data进行进一步的处理 return new Promise((resolve)=>{//reject可以省略 //此处进行请求数据等耗时操作,获取返回结果为data1 data1 = process(data) resolve(data1) }) }) new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ //此处对data进行进一步的处理 data1 = process(data) return Promise.resolve(data1) }) new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ //此处对data进行进一步的处理 data1 = process(data) return data1 //在then()中直接返回数据,Promise会对其进行包装 }) new Promise((resolve,reject)=>{ //此处进行请求数据等耗时操作,获取返回结果为data resolve(data) }).then(data=>{ return Promise.reject(error) //throw "error message" 这里直接手动抛出异常,catch也是能够捕获的 }).catch(error=>{ console.log(error) })

    Promise.all()【等待多个异步请求全部完成后回调】

    //参数是一个iterator,可迭代对象。这里传入一个数组 Promise.all([ new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve({'name':'jilegeji','age':22}) },1000) }), new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve({'name':'mikal bridge','age':23}) },2000) }) ]).then(results=>{ console.log(results)//这里的results为一个数组。顺序为传入参数的返回结果顺序 })
    Processed: 0.013, SQL: 8