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 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对象)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。