如何在实际项目中使用Promise(入门级)
2024-10-01 18:41:41
你们有没有遇到过这样的情况,ES6看过了,Promise的文字概念都懂,但是我要怎么在项目中去写一个Promise呢?
那天我就是带着这样的疑问去网上搜了下。最后成功地在项目中应用了Promise,只有实际成功使用一次,才能明白它的前因后果,明白它的用途。
1.这是一个vue的电商项目-商品详情页
我写了个方法调库存接口。
通常情况,异步请求完毕,直接处理结果。但现在我需要在不同的地方调用,对结果进行不同的处理。所以我在getStock方法里返回一个promise,也就是把getStock方法里axios.get异步请求的结果直接返回。
getStock(region_id, product_id) {
return new Promise((resolve, reject) => {
axios.get('/index.php/storage-stock.html', {
params: {
area_id: region_id,
product_id: [product_id]
}
}).then(function (res) {
resolve(res)
}).catch(function (error) {
reject(error)
})
})
}
这里请注意关键点,.then() 里面的 resolve(res)
2.以下是一个调用的地方:
this.getStock(REGION_ID, this.product_id).then((res) => {
if (res.data.data) {
const data = res.data.data
if (data.length > 0) {
this.goodsInfo = data[0]
this.stock = data[0].stock
this.stock_total = data[0].stock_total
this.is_danger = data[0].is_danger
this.marketable = data[0].marketable
} else {
this.stock = 0
}
}
})
这里.then() 里面的res 就是getStock方法的返回值。
3.另一个调用的地方:
this.getStock(region_id, product_id).then((res) => {
if (res.data.data) {
const data = res.data.data
if (data.length > 0) {
that.stock = data[0].stock
that.stock_total = data[0].stock_total
} else {
that.stock = 0
}
}
})
这样就可以分别在不同的地方处理一个异步请求的返回值了。
最新文章
- [C#常用代码]类库中读取解决方案web.Config字符串
- JVM内存监控工具 JavaMelody
- 【Bochs 官方手册翻译】 第一章 Bochs介绍
- 给JavaScript初学者的24条最佳实践(share)
- [py]导入模块3种方法
- java笔记--查看和修改线程名称
- javascript事件学习笔记
- Delphi版的完成端口控件
- spring mvc model.addAttribute页面c:forEach取不到
- web.xml 中<;taglib>;报错(转载)
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(下)
- RGB和HSV颜色空间
- 自定义的jdbc连接工具类JDBCUtils【java 工具类】
- Dynamics 365中的常用Associate和Disassociate消息汇总
- python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例
- Docker备忘录
- 声笔飞码GB2312单字效率分析
- 战斗bug技巧全攻略
- Java compiler level does not match the version of the installed Java project facet.解决方法
- 第十课 C++异常简介
热门文章
- ztree中依据后台中传过来的node的id,将这个node的复选框置为不可用
- poj 2240 Bellman-Flod 求环
- 无法往SQL Server Management Studio拖脚本
- 解决Android Studio 2.2.3中添加.cpp .h文件在Project->;Android无法显示,无法正常编译问题。
- 分贝(dB)的理解
- 安装vnc出现的问题
- Cisco交换机解决网络蠕虫病毒入侵问题
- hight charts
- OPENCV(2) &mdash;&mdash; Basic Structures(一)
- noip 2018 day1 T2 货币系统 完全背包