作者热门文章
- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
new Promise( function (resolve, reject) { // 要做的事情... });
new Promise( function (resolve, reject) { console.log( 1111 ); resolve( 2222 ); }).then( function (value) { console.log(value); return 3333 ; }).then( function (value) { console.log(value); throw "An error" ; }). catch ( function (err) { console.log(err); });
1111
2222
3333
An error
// 面试 function interview(round) { return new Promise((resole, reject) => { setTimeout(() => { var score = Math.random(); if (score > 0.6 ) { resole(score); } else { var err = new Error(`分数:${score}`); err.round = round; reject(err) } }, 1000 ); }); };
// 异步方法求职 async function seekJobs() { console.log( 'seekJobs => start' ); console.time( 'seekJobs' ); try { console.log( '第 1 轮面试得分:', await interview(1 )); console.log( '第 2 轮面试得分:', await interview(2 )); console.log( '第 3 轮面试得分:', await interview(3 )); console.log( 'yeah!' ); } catch (error) { console.error( '第 ' + error.round + ' 轮面试没通过:' , error); } console.log( 'seekJobs => end.' ); console.timeEnd( 'seekJobs' ); return '求职已经结束。' ; };
通过async声明该方法为异步方法,每一轮面试用await等待返回面试结果,通过可进入下一轮面试,不通过则记录是第几轮面试和得分,最后方法返回信息“求职已经结束。” 。
// promise的方式求职 function seekJobs_P() { console.log( 'seekJobs => start' ); console.time( 'seekJobs' ); interview( 1 ) .then((score) => { console.log( '第 1 轮面试得分:' , score); return interview(2 ); }) .then((score) => { console.log( '第 2 轮面试得分:' , score); return interview(3 ); }) .then((score) => { console.log( '第 3 轮面试得分:' , score); console.log( 'yeah!' ); }) . catch ((error) => { console.error( '第 ' + error.round + ' 轮面试没通过:' , error); }); console.log( 'seekJobs => end.' ); console.timeEnd( 'seekJobs' ); return '求职已经结束。' ; };
每一轮面试的通过都会进入到then,打印分数并调用下一轮面试,直到所有面试都通过,中间过程中有一轮面试没通过则进入到catch,最后同样返回信息“求职已经结束“ 。
/* * * 主线程 */ ( function main() { console.log( 'main.start======================================' ); console.time( 'main' ); // 调用求职的异步方法,遇到await不等待,直接返回到mian方法继续执行,main执行完才输出求职返回结果 // seekJobs().then((res) => { // console.log('求职返回:', res); // }); // 调用promise的方式求职,遇到then继续执行并返回"求职已经结束。",回到main方法输出求职返回结果,最后再输出每一次面试的分数 var res = seekJobs_P(); console.log( '求职返回:' , res); console.log( 'main.end======================================' ); console.timeEnd( 'main' ); })();
。
最后此篇关于Javascript|分别用asyncawait异步方法和Promise来实现一个简易的求职程序的文章就讲到这里了,如果你想了解更多关于Javascript|分别用asyncawait异步方法和Promise来实现一个简易的求职程序的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在设计一个可在hbase上运行的应用程序,并且希望以交互方式浏览集群的内容。我在hbase shell中,我想对所有以chars“abc”开头的键进行扫描。这样的键可能包括“abc4”,“abc9
我是一名优秀的程序员,十分优秀!