new Promise((resolve, reject) => {})使用记录 -笔记

new Promise((resolve, reject) => {}) 这种结构在JavaScript(不只是Vue.js)中用于创建一个Promise实例,它常用于以下情况:

1.异步操作处理:当需要进行一个异步操作,如网络请求、定时器、文件读写等,并希望以非阻塞方式等待其完成时,可以使用Promise。例如上述代码模拟了一个延迟一秒后完成的任务。

2.错误处理:resolve和reject函数分别用于表示异步操作的成功和失败。在异步任务完成后,根据业务逻辑调用它们,如获取数据成功后调用resolve(data),发生错误时调用reject(error)。
e.g

export function identifyAirportMethod (Searchvalue:string,visible:boolean,airPort:string,location:string){
  return new Promise(async (resolve,rejesct) => {
    await initBookingApi.identifyAirport(Searchvalue).then((res) => {
      if (res.data.code === 200) {
        visible = true
        airPort = res.data.data.airport
        location = res.data.data.location
      } else {
        message.error({
          content: () => res.data.message,
          class: 'custom-class',
          style: {
            marginTop: '20vh'
          }
        })
      }
    })
    let params = {Searchvalue,visible,airPort,location}
    resolve(params)
  })
}

在别处调用

const placeOrAirLocationSearch = async (Searchvalue: any) => {
  if (Searchvalue) {
    let res: any = await toolsApi.identifyAirportMethod(Searchvalue, queryPlacevisible.value, aModalPlace.airPort, aModalPlace.location)
    queryPlacevisible.value = res.visible
    aModalPlace.airPort = res.airPort
    aModalPlace.location = res.location
  }
}

3.链式调用与错误链:Promise支持.then和.catch方法进行后续处理,使得异步流程可以有序且易于管理。

可能的使用场景是在某个操作如客户转账重试机制中,模拟1秒后重试完成的动作,然后继续执行接下来的逻辑(比如更新UI、通知服务端或其他依赖此重试结果的操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值