当前位置: 首页 > news >正文

网站建设报价请示网络平台搭建是什么意思

网站建设报价请示,网络平台搭建是什么意思,中国建设银行网站忘记密码,开发app的公司挣钱吗目录 1、简介 2、状态管理 3、控制流 3.1、串联 3.2、完全并行 3.3、有限并行 1、简介 在其核心#xff0c;JavaScript被设计为在“主”线程上是非阻塞的#xff0c;这是呈现视图的位置。你可以想象这在浏览器中的重要性。例如#xff0c;当主线程被阻塞时#xff0…目录 1、简介 2、状态管理 3、控制流 3.1、串联 3.2、完全并行 3.3、有限并行 1、简介 在其核心JavaScript被设计为在“主”线程上是非阻塞的这是呈现视图的位置。你可以想象这在浏览器中的重要性。例如当主线程被阻塞时会导致最终用户害怕的臭名昭著的“冻结”并且无法调度其他事件最终导致数据丢失。 这就产生了一些只有函数式编程才能解决的独特约束。然而在更复杂的过程中回调可能会变得很难处理。这通常会导致“回调地狱”其中带有回调的多个嵌套函数使代码在读取、调试、组织等方面更具挑战性。 例如 async1(function (input, result1) {async2(function (result2) {async3(function (result3) {async4(function (result4) {async5(function (output) {// do something with output});});});}); }); 当然在现实生活中很可能会有额外的代码行来处理result1、result2等因此这个问题的长度和复杂性通常会导致代码看起来比上面的例子混乱得多。 这就是函数的用武之地。更复杂的操作由许多功能组成 调用方式 input中间件终止器 “调用方式 input”是对列中的第一个函数。此功能将接受操作的原始输入如果有。操作是一系列可执行的功能原始输入主要是 全局环境中的变量带参数或不带参数的直接调用通过文件系统或网络请求获得的值 网络请求可以是由外部网络、同一网络上的另一应用程序或同一网络或外部网络上的应用程序本身发起的传入请求。 中间件函数将返回另一个函数终止器函数将调用回调。以下说明了网络或文件系统请求的流程。这里的延迟是0因为所有这些值都在内存中可用。 function final(someInput, callback) {callback(${someInput} and terminated by executing callback ); } function middleware(someInput, callback) {return final(${someInput} touched by middleware , callback); } function initiate() { const someInput hello this is a function ;middleware(someInput, function (result) {console.log(result);// requires callback to return result}); } initiate(); 2、状态管理 函数可能与状态相关也可能不与状态相关。当函数的输入或其他变量依赖于外部函数时就会产生状态依赖性。 通过这种方式有两种主要的状态管理策略 将变量直接传递给函数从缓存、会话、文件、数据库、网络或其他外部源获取变量值。 注意我没有提到全局变量。用全局变量管理状态通常是一种草率的反模式这使得很难或不可能保证状态。在可能的情况下应避免使用复杂程序中的全局变量。 3、控制流 如果一个对象在内存中可用则可以进行迭代并且不会对控制流进行更改 function getSong() {let _song ;let i 100;for (i; i 0; i - 1) {_song ${i} beers on the wall, you take one down and pass it around, ${i - 1} bottles of beer on the wall\n;if (i 1) {_song Hey lets get some more beer;}}return _song; } function singSong(_song) {if (!_song) throw new Error(song is empty, FEED ME A SONG!);console.log(_song); } const song getSong(); // this will work singSong(song); 但是如果数据在内存中不存在则迭代将停止 function getSong() {let _song ;let i 100;for (i; i 0; i - 1) {/* eslint-disable no-loop-func */setTimeout(function () {_song ${i} beers on the wall, you take one down and pass it around, ${i - 1} bottles of beer on the wall\n;if (i 1) {_song Hey lets get some more beer;}}, 0);/* eslint-enable no-loop-func */}return _song; } function singSong(_song) { if (!_song) throw new Error(song is empty, FEED ME A SONG!); console.log(_song); } const song getSong(beer); // this will not work singSong(song); // Uncaught Error: song is empty, FEED ME A SONG! 为什么会发生这种情况setTimeout指示CPU将指令存储在总线上的其他位置并指示将数据安排为稍后处理。在函数在0毫秒标记处再次命中之前经过了数千个CPU周期CPU从总线中获取指令并执行它们。唯一的问题是song“”在数千个循环之前被返回。 在处理文件系统和网络请求时也会出现同样的情况。主线程不能在不确定的时间段内被阻塞——因此我们使用回调来以可控的方式及时调度代码的执行。 我们可以使用以下3种模式执行几乎所有的操作 3.1、串联 函数将以严格的顺序执行这一顺序与循环最相似。 // operations defined elsewhere and ready to execute const operations [{ func: function1, args: args1 },{ func: function2, args: args2 },{ func: function3, args: args3 }, ]; function executeFunctionWithArgs(operation, callback) { // executes function const { args, func } operation;func(args, callback); } function serialProcedure(operation) {if (!operation) process.exit(0); // finishedexecuteFunctionWithArgs(operation, function (result) {// continue AFTER callbackserialProcedure(operations.shift());}); } serialProcedure(operations.shift()); 3.2、完全并行 用于同时运行异步任务 let count 0; let success 0; const failed []; const recipients [{ name: Bart, email: barttld },{ name: Marge, email: margetld },{ name: Homer, email: homertld },{ name: Lisa, email: lisatld },{ name: Maggie, email: maggietld }, ];function dispatch(recipient, callback) {// sendEmail is a hypothetical SMTP clientsendMail({subject: Dinner tonight,message: We have lots of cabbage on the plate. You coming?,smtp: recipient.email,},callback); }function final(result) {console.log(Result: ${result.count} attempts \ ${result.success} succeeded emails);if (result.failed.length)console.log(Failed to send to: \\n${result.failed.join(\n)}\n); }recipients.forEach(function (recipient) {dispatch(recipient, function (err) {if (!err) {success 1;} else {failed.push(recipient.name);}count 1;if (count recipients.length) {final({count,success,failed,});}}); }); 3.3、有限并行 一种异步、并行、并发受限的循环例如成功地向10E7用户列表中的1000000个收件人发送电子邮件。 let successCount 0; function final() {console.log(dispatched ${successCount} emails);console.log(finished); } function dispatch(recipient, callback) { // sendEmail is a hypothetical SMTP client sendMail({subject: Dinner tonight,message: We have lots of cabbage on the plate. You coming?,smtp: recipient.email,},callback ); } function sendOneMillionEmailsOnly() { getListOfTenMillionGreatEmails(function (err, bigList) {if (err) throw err;function serial(recipient) {if (!recipient || successCount 1000000) return final();dispatch(recipient, function (_err) {if (!_err) successCount 1;serial(bigList.pop());});}serial(bigList.pop());}); } sendOneMillionEmailsOnly();
http://www.dnsts.com.cn/news/195349.html

相关文章:

  • 网站是怎么优化的项目网创业
  • 网站设计培训班询WordPress营销推广返佣插件
  • 常州做网站哪家快如何自己做一个网址
  • 哪个网站可以做编程题建设 展示型企业网站
  • 网站建设费用价格明细表135编辑器 wordpress
  • 医院建设网站要求分析 amp中国建设公司排名
  • 怎样提高网站的打开速度专业网站建设服务商
  • 网站开发费用摊销时间餐厅vi设计公司
  • 上海模板网建站word可以做网站链接吗
  • 焦作网站seo流放之路做装备词缀网站
  • 竞赛网站开发织梦cms侵权
  • 企业建设电商网站企业网站怎么形成二维码
  • 网站建设排名优化技巧wordpress 文章导出
  • 广州安全教育平台入口网站路径优化怎么做
  • 印刷做网站网上接单易思网站管理系统收费
  • 电子商务电商网站饿建设房地产app开发
  • 做网站都需要哪些信息关于协会网站建设的几点思考
  • 中宁网站建设天津专门做网站
  • 网站在线广州网站建设联系电话
  • 中国城乡住建部建设部网站seo网站优化培训公司
  • 私人订制网站有哪些宁波公司网站开发
  • 网站改版方案网页创意与设计50例
  • 没有网站可以做落地页汝州市住房和城乡规划建设局网站
  • 网站建设软件sh做网站如何推广买量
  • 更改wordpress程序站点网址专业网页设计价格
  • 论坛网站如何建设一个域名怎么做网站
  • wordpress 中英文站点网站建设代码编译的问题及解决方案
  • 宁夏 网站开发westte吕梁推广型网站建设
  • 传媒在线网站模板怎么样才算大型网站开发
  • dede网站模板下载网站建设专家证书