异步
生成十个随机数,每隔一秒生成一个
setTimeout(() => {
console.log(Math.random() + '');
setTimeout(() => {
console.log(Math.random() + '');
setTimeout(() => {
console.log(Math.random() + '');
setTimeout(() => {
console.log(Math.random() + '');
setTimeout(() => {
console.log(Math.random() + '');
setTimeout(() => {
console.log(Math.random() + '');
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
这样会陷入死循环,因此被称为 回调地狱
## 异步并发
Promise和async/await 提供异步并发能力
Promise有三种状态:
pending(进行中)
fulfilled(已完成)
rejected(已拒绝,出现错误)
reslove(成功) reject (失败)
加入判定
if语句中使用reslove reject
then用来处理reslove的数据 data成功后返回的数据
则catch表示失败,出现错误回直接停止代码运行
.catch在外部加入属于判断整体
若在中间加入则表示判断某一段落
err=》{
console。log(err)
}
表示处理失败
如果上个then的异步操作正确那么
接下来的then接受的是上一个return的结果
## 使用异步函数
async function asy() {
console.log('开始执行异步操作');
try {
let num1=await p()
console.log(num1);
let num2=await p()
console.log(num2);
}catch(err){
console.log(err);
}
}
## arkTs的异步
在arkTs中必须声明函数类型
再用if语句
reslove必须和声明的函数类型对应
而reject不与声明的函数类型有关系
## arkTs的遍历
在arkTs中遍历先导出
然后与Js差异不大