promise ,async/await的基础用法

简介: promise ,async/await的基础用法
// setTimeout(() => {
//     console.log(1)
//     setTimeout(() => {
//         console.log(2)
//         setTimeout(() => {
//             console.log(3)
//             setTimeout(() => {
//                 console.log(4)
//                 setTimeout(() => {
//                     console.log(5)
//                 }, 1000)
//             }, 1000)
//         }, 1000)
//     }, 1000)
// }, 1000);
var setTimeoutPromise = (time) => new Promise((resolve, reject) => {
    setTimeout(() => { resolve() }, time)
});
// setTimeoutPromise(1000).
//     then(() => { console.log(1); return setTimeoutPromise(1000) }).
//     then(() => { console.log(2); return setTimeoutPromise(1000) }).
//     then(() => { console.log(3); return setTimeoutPromise(1000) }).
//     then(() => { console.log(4); return setTimeoutPromise(1000) }).
//     then(() => { console.log(5)});
var task = async (count) => {
    for (var i = 1; i <= count; i++) {
        await setTimeoutPromise(1000);
        console.log(i);
    }
}
async function taskAll(){
    await task(20);
    console.log('task Finish');
}
taskAll();
// 协程->线程->进程
// JS 单线程异步非阻塞模型
// EventLoop来实现它
// function timeOutTrunk(time) {
//     return (cb) => {
//         setTimeout(cb, time, time);
//     }
// }
// var gen = function* () {
//     var f1 = yield timeOutTrunk(1000);
//     console.log(f1);
//     var f2 = yield timeOutTrunk(f1 + 1000);
//     console.log(f2);
// }
// var g = gen();
// var result = g.next();
// result.value((time) => {
//     var r = g.next(time);
//     r.value((time) => {
//         var _r = g.next(time);
//         console.log(_r.done);
//     })
// })
// TODO:如何用递归来实现一个自动化的执行器?
// var a = new Promise((resolve, reject) => {
//     setTimeout(() => {
//         resolve('yeah')
//     }, 1000);
// });
// var b = (value) => {
//     return new Promise((resolve, reject) => {
//         setTimeout(() => {
//             resolve('b!');
//         }, 3000);
//     })
// }
// // a.then(b).then((v) => { console.log('yeah!') });
// // Promise.all([a, b()]).then(v => console.log(v));
// Promise.race([a, b()]).then(v => console.log(v));
相关文章
|
5天前
|
前端开发 JavaScript
Promise、async和await
Promise、async和await
11 0
|
1月前
|
数据采集 前端开发 JavaScript
如何在爬虫过程中正确使用Promise对象和async/await?
如何在爬虫过程中正确使用Promise对象和async/await?
20 2
|
1月前
|
前端开发 JavaScript 开发者
JavaScript 中的异步编程:Promise 和 Async/Await
在现代的 JavaScript 开发中,异步编程是至关重要的。本文将介绍 JavaScript 中的异步编程概念,重点讨论 Promise 和 Async/Await 这两种常见的处理异步操作的方法。通过本文的阐述,读者将能够更好地理解和应用这些技术,提高自己在 JavaScript 开发中处理异步任务的能力。
|
3天前
|
前端开发 JavaScript Java
Promise, async, await实现异步编程,代码详解
Promise, async, await实现异步编程,代码详解
16 1
|
24天前
|
前端开发
promise和async的区别是什么?
promise和async的区别是什么?
9 1
|
1月前
|
存储 前端开发 安全
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(三)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
24 0
|
1月前
|
存储 设计模式 前端开发
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(二)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
29 0
|
1月前
|
并行计算 前端开发 安全
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(一)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
62 0
|
1月前
|
前端开发 JavaScript
如何处理 JavaScript 中的异步操作和 Promise?
如何处理 JavaScript 中的异步操作和 Promise?
15 1
|
1月前
|
前端开发 JavaScript
在JavaScript中,什么是promise、怎么使用promise、怎么手写promise
在JavaScript中,什么是promise、怎么使用promise、怎么手写promise
25 4