众所周知,js是异步的,在写脚本的时候,很多情况需要一步一步的同步执行,想要达成同步,有很多,但是代码最美的还是async/await了。
脚本执行过程中,有的时候需要等待上一步完成,有的时候需要等一会儿再执行下一步,下面给出三个例子:
第一个,是基于await的非阻塞暂停等待,其实是await包了一个setTimeout
//
//第一个,延时,是一个不阻塞的sleep
//
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
//
//
async function main() {
for(i=0;i<10;i++){
console.log('Hello'); //有的时候每次循环太快,同时发出好几个请求,导致部分请求返回异常
await sleep(20);
}
}
//
//
main();
//
第二个,是setTimeout(),当然要粘一个地址
//
//第二个
//
setTimeout(function(){
console.log("Hello World"); //随便用,只是经过2秒延时后,只会执行这个函数里的部分
}, 2000); //外面依然是异步同时进行
//
第三个,是经典的await,当然也要贴贴
//
//第三个,是一个经典的await
//当 async 函数执行到 await 的时候
//会暂停整个async函数的执行进程并出让其控制权
//只有当其等待的基于Promise 的异步操作被兑现或被拒绝之后才会恢复进程。
//
function getSomething() {
return "something";
}
//
async function testAsync() {
return Promise.resolve("hello async");
}
//
async function main() {
const v1 = await getSomething();
const v2 = await testAsync();
console.log(v1, v2);
}
//
//
main();
//
仅以此记录,备日后好找。
文章有(2)条网友点评
With havin so much content and articles do you ever run into any problems of plagorism or copyright infringement?
My site has a lot of unique content I’ve either created myself or outsourced but it appears a
lot of it is popping it up all over the internet
without my authorization. Do you know any techniques to help protect against content from being
ripped off? I’d certainly appreciate it.
@ https://goodhealther.com/html-sitemap Sorry, no, maybe my content is not enough to be plagiarized,ahhhh