千家信息网

Javascript中如何使用Promise

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本文小编为大家详细介绍"Javascript中如何使用Promise",内容详细,步骤清晰,细节处理妥当,希望这篇"Javascript中如何使用Promise"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2024年11月11日Javascript中如何使用Promise

本文小编为大家详细介绍"Javascript中如何使用Promise",内容详细,步骤清晰,细节处理妥当,希望这篇"Javascript中如何使用Promise"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

方法一:处理异步回调

对于 JavaScript 中的 Promise 的基本用法是处理异步回调,我们来看看下面的代码:

function Pro1(){ return new Promise(function(resolve, reject) {  setTimeout(function(){   resolve('pro1')  }, 300) })}//调用Pro1().then(function(data){ console.log(data) //pro1}).catch(function(err){ throw new Error(err)})

方法二:多个异步函数同步处理

那么在开发中有时候我们需要发送两个 Ajax ,我们希望他们可以能够将数据返回,我们可以采用下面这个方法代码如下所示:

function Pro1(){ return new Promise(function(resolve, reject) {  setTimeout(function(){   resolve('pro1')  }, 300) })}function Pro2(){ return new Promise(function(resolve, reject) {  setTimeout(function(){   resolve('pro2')  }, 300) })}//调用var Pro = Promise.all([Pro1(), Pro2()]);Pro.then(function(data){ console.log(data[0], data[1]) //Pro1 Pro2}).catch(function(err){ throw new Error(err)})

方法三:异步依赖异步回调

在这个方法中我们使用这个方法可以借鉴下面这串代码进行参考,代码如下所示:

function Pro1(orderId){ return new Promise(function(resolve, reject) {  setTimeout(function(){   var orderInfo = {    orderId: orderId,    productIds: ['123', '456']   }   resolve(orderInfo.productIds)  }, 300) })}function Pro2(productIds){ return new Promise(function(resolve, reject) {  setTimeout(function(){   var products = productIds.map(function(productId){    return {     productId: productId,     name: '衣服'    }   })   resolve(products)  }, 300) })}//调用Pro1('abc123').then(function(productIds){ console.log('商品id',productIds)  return Pro2(productIds)}).then(function(products){ console.log('商品详情',products) }).catch(function(err){ throw new Error(err)})

方法四:封装统一入口办法或者错误处理

错误处理代码如下所示:

function ErrorHandler(promiseObj, rejectOrResOrCallback){ return promiseObj.then(null, function(err){ if(!err) })}

读到这里,这篇"Javascript中如何使用Promise"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0