iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >node.js中怎么判断执行是否完成
  • 749
分享到

node.js中怎么判断执行是否完成

2024-04-02 19:04:59 749人浏览 八月长安
摘要

今天就跟大家聊聊有关node.js中怎么判断执行是否完成,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方案一:判断请求到的数据条目// 模

今天就跟大家聊聊有关node.js中怎么判断执行是否完成,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

方案一:判断请求到的数据条目

// 模拟网络请求
function fetch(url, callback) {
 setTimeout(function (){
 callback(null, {
  subjects: [{
   data: Math.round(Math.random() * 100)
  }]
  });
 }, 2000);
}
// 实现方案1
function multiTask_1 () {
 var arr = [];
 var baseUrl = 'https://api.douban.com/v2/movie/top250';
 for (var start = 0; start < 10; start++) {
 var url = baseUrl + '?start=' + start + "&count=1";
  fetch(url, function(error, res) {
  var data = res.subjects;
  arr = arr.concat(data);
  // 调用完成后统一处理
  if (arr.length === 10) {
   console.log(arr);
  }
 });
 }
}

将运行结果用arr.length来判断,如果arr.length不像我们期望的那样,比如由于网络传输或者处理异常,少一条,那么我们将无法做后续的处理。这种处理方式强业务耦合;不具有普适性。

方案二:判断异步过程执行次数

// 方案2
function multiTask_2 () {
 var taskWatcher = 0;
 var arr = [];
 var baseUrl = 'Https://api.douban.com/v2/movie/top250';
 for (var start = 0; start < 10; start++) {
 taskWatcher++;
 var url = baseUrl + '?start=' + start + "&count=1";
 fetch(url, function(error, res) {
  var data = res.subjects;
  arr = arr.concat(data);
  taskWatcher--;
  if (taskWatcher === 0) {
   console.log(arr);
  }
 });
 }
}

方案2 的判断条件,这里的 taskWatcher 充当异步任务执行情况的观察员,仅与异步过程的调用次数有关,且与其他处理过程无关。那有没有其他方案呢

方案三:Promise.all()

Promise.all(iterable) 方法返回一个 Promise, 它将在上述可迭代对象中的所有 Promise 被 resolve 之后被 resolve,或者在任一 Promise 被 reject 后被 reject。

function multiTask_3 () {
 // var taskWatcher = 0;
 var taskStack = [];
 var arr = [];
 var baseUrl = 'https://api.douban.com/v2/movie/top250';
 for (var start = 0; start < 10; start++) {
 taskStack.push(
  new Promise((resolve, reject) => {
  var url = baseUrl + '?start=' + start + "&count=1";
  fetch(url, function(error, res) {
   var data = res.subjects;
   arr = arr.concat(data);
   resolve();
  });
  })
 );
 }
 Promise.all(taskStack).then(function () {
 console.log(arr);
 });
}

这种方式更具有通用性,如果异步任务类型不同,也可以用这种方式来解决。不过应当注意reject的处理。避免其对最终处理的影响。

方案四: EventProxy

EventProxy是朴灵写的,https://GitHub.com/JacksonTian/eventproxy

 var ep = new EventProxy();
 var arr = [];
 ep.after('fetchData', 10, function (list) {
 list.forEach(function(item){
  arr = arr.concat(item); 
 });
 console.log(arr);
 });
 var baseUrl = 'https://api.douban.com/v2/movie/top250';
 for (var start = 0; start < 10; start++) {
 var url = baseUrl + '?start=' + start + "&count=1";
  fetch(url, function(error, res) {
  var data = res.subjects;
  ep.emit('fetchData', data);
 });
 }

EventProxy基于事件订阅/发布模式,这里的after 方法可以侦听多次事件,回调中保存了多次异步任务的数据结果的数组;除此之外EventProxy还支持多个不同事件的侦听和处理。

看完上述内容,你们对node.js中怎么判断执行是否完成有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网VUE频道,感谢大家的支持。

--结束END--

本文标题: node.js中怎么判断执行是否完成

本文链接: https://www.lsjlt.com/news/74473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • node.js中怎么判断执行是否完成
    今天就跟大家聊聊有关node.js中怎么判断执行是否完成,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方案一:判断请求到的数据条目// 模...
    99+
    2024-04-02
  • 怎么判断sql是否执行成功
    可以通过以下几种方法来判断SQL是否执行成功: 检查返回值:在执行SQL语句后,可以通过返回的结果来判断是否执行成功。如果返回的...
    99+
    2023-10-24
    sql
  • java怎么判断线程池是否执行完毕
    在Java中,可以使用`ExecutorService`来创建线程池,然后利用`isTerminated()`方法来判断线程池是否执...
    99+
    2023-08-20
    java
  • shell怎么判断命令是否执行成功
    在shell中,可以使用特殊变量$来获得上一个命令的退出状态码。一般情况下,退出状态码为0表示命令执行成功,非0表示命令执行失败。例...
    99+
    2023-08-12
    shell
  • linux中如何判断 bc命令是否成功执行
    今天就跟大家聊聊有关linux中如何判断 bc命令是否成功执行,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。bc: no=1321456 echo "obase=2;$no...
    99+
    2023-06-14
  • java怎么判断线程执行完毕
    Java中判断线程是否执行完毕有多种方式:1. 使用Thread类的join()方法:调用线程的join()方法可以等待线程执行完毕...
    99+
    2023-08-31
    java
  • angularjs中怎么判断ng-repeat是否迭代完
    这篇文章给大家介绍angularjs中怎么判断ng-repeat是否迭代完,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先我们要定义一个数组$scope.testArrray&nbs...
    99+
    2024-04-02
  • Java中如何判断线程池任务已执行完成
    目录不判断的问题方法1:isTerminated缺点分析扩展:线程池的所有状态方法2:getCompletedTaskCount方法说明优缺点分析方法3:CountDownLatch...
    99+
    2024-04-02
  • Node.js 中怎么判断一个文件是否存在
    本篇文章为大家展示了Node.js 中怎么判断一个文件是否存在,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为什么不推荐 fs.exists我们在设计一个回调函数时...
    99+
    2024-04-02
  • kafka怎么判断是否发送成功
    在 Kafka 中,生产者发送消息后,可以通过以下几种方式判断消息是否发送成功: 同步发送方式:生产者调用 send() 方法后,...
    99+
    2023-10-20
    kafka
  • PHP判断给定文件名是否可执行
    这篇文章将为大家详细讲解有关PHP判断给定文件名是否可执行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 判断 PHP 文件是否可执行的最佳实践 判断给定文件名是否可执行是一个常见需求,可以在各种情况下...
    99+
    2024-04-02
  • 怎么判断iframe加载完成
    如何判断iframe加载完成:代码示例 在网页开发中,当需要加载外部页面或者其他网页时,常常会使用到iframe标签。但是,有时候我们需要在iframe加载完成后进行一些操作,比如获取...
    99+
    2024-02-22
  • shell怎么判断进程是否运行
    在shell中,可以使用以下命令来判断进程是否运行:1. 使用`ps`命令和`grep`命令结合,查找指定进程名的进程,并使用`gr...
    99+
    2023-08-12
    shell
  • 怎么判断win10是否中毒
    要判断Windows 10是否中毒,可以进行以下步骤:1. 更新和运行杀毒软件:确保您的杀毒软件是最新版本,并对整个系统进行全面扫描...
    99+
    2023-09-04
    win10
  • Android应用中怎么判断服务是否运行
    这期内容当中小编将会给大家带来有关Android应用中怎么判断服务是否运行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现代码: public boolean isServiceWork(Context...
    99+
    2023-05-31
    android roi
  • DW中怎么判断字符串中是否有换行
    本篇文章为大家展示了DW中怎么判断字符串中是否有换行,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。经常从DW中复制出一段HTML代码(比如table)想将它作为一个字符串来使用,习惯性的将其粘贴到记...
    99+
    2023-06-08
  • android怎么判断服务是否在运行
    在Android中,可以通过以下方法判断服务是否在运行:1. 使用ActivityManager来获取正在运行的服务列表,然后遍历列...
    99+
    2023-10-19
    android
  • jquery怎么判断radio是否选中
    在jQuery中,可以使用`is(':checked')`方法来判断radio是否被选中。示例代码如下:```javascripti...
    99+
    2023-08-15
    jquery radio
  • VBSrcipt中怎么判断是否是日期
    VBSrcipt中怎么判断是否是日期,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。<SCRIPT LANGUAGE="vbScript"...
    99+
    2023-06-08
  • js怎么判断是否在iframe中
    这篇文章主要介绍了js怎么判断是否在iframe中,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. js如何判断是否在iframe中Js代...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作