目录
- 案例:
- 一、async/await处理思路
- 二、递归处理思路
- 总结
案例:
compute.exec()这是个异步方法,在里面处理一些实际业务,这时候打印出来的很可能就是300,300,300(因为异步for循环还没有等异步操作返回Promise对象过来i值已经改变成300了)
function getMoney(){
var money=[100,200,300]
for(let i=0; i<money.length; i++){
compute.exec().then(()=>{
console.log(money[i])
})
}
}
一、async/await 处理思路
async function getMoney(){
var money=[100,200,300]
for( let i=0; i<money.length; i++){
await compute.exec().then(()=>{
console.log(money[i])
})
}
}
// async告诉getMoney方法里面存在异步的操作
// await放在具体异步操作(方法)前面,意思是等待该异步返回Promise才会继续后面的操作
二、递归处理思路
function getMoney(i) {
var money=[100,200,300]
compute.exec().then(() => {
if ( i < money.length ) {
console.log(money[i]);
i++;
getMoney(i);
}
});
}
getMoney(0);//开始调用
//用递归来实现自我循环(具体循环在then里面,可以确保前面的compute.exec()的异步操作完成).then()是返回了Promise对象为resolve后才进行的(可以了解一下Promise对象)
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)