React-Native:用JavaScript Promise来顺序处理setTimeout

本文探讨了在React-Native中遇到JavaScript异步问题时,如何利用Promise来顺序执行setTimeout操作。通过示例代码展示了Promise的工作原理,包括其Fulfilled、Rejected和Pending三种状态,以及then()和catch()方法的使用,强调了Promise在异步处理中的重要作用。
摘要由CSDN通过智能技术生成
function serialAnim () {
  // ...A的处理内容

  setTimeout(() => {
    // ...B的处理内容
  }, 3000)

   //c的处理内容
}

当我们遇到这样的处理时候因为JS的一部执行机制,会先执行A,然后执行C,过了三秒之后执行B。

对于那些不知道什么是异步的人,让我们用具体的代码进行试验。将以下代码另存为 async.js

let msg = ''

// #1
console.log('#1')
msg = msg + 'Hello '

// #2
setTimeout(() => { // 5秒之后的处理
  console.log('#2')
  msg = msg + "I'm "
}, 500)

// #3
console.log('#3')
msg = msg + 'Jeccy'

// #4
console.log('#4')
console.log(msg)

当我们执行上面的代码的时候会输出如下的结果

$ node async.js
#1
#3
#4
Hello Jeccy
#2

如果是非异步语言,进程会在setTimeout()停止5秒,字符串会按照脚本中写的顺序输出。但是在异步语言JavaScript中,进程不会停止。在执行#1之后,#3会被立即执行。

解决办法

  我们无法对每个过程进行排序是一个很头疼的问题。因此,我们可以用Promise轻松处理这种困难的异步处理。

直接来看一下代码吧!


                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值