首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用返回的.exec回调返回undefined,但console.log中确实有项

问题描述:使用返回的.exec回调返回undefined,但console.log中确实有项。

回答:在这个问题中,我们可以推测你在使用某个函数的.exec方法,并期望它返回一个值,但是实际上返回的是undefined。同时,你在使用console.log打印结果时,却发现结果中确实有项。

首先,我们需要明确.exec方法是哪个函数的方法,因为不同的函数可能有不同的行为。在这里,我们无法确定具体的函数,所以无法给出具体的解决方案。

然而,我们可以提供一些可能导致这种情况发生的常见原因和解决方法:

  1. 错误的使用方式:某些函数的.exec方法可能需要传入参数或者按照特定的方式调用才能返回正确的结果。请确保你正确地使用了该方法,并按照函数的要求传入正确的参数。
  2. 异步操作:某些函数的.exec方法可能是异步的,它们会立即返回undefined,然后在后台执行某些操作,并在完成后通过回调函数返回结果。在这种情况下,你需要确保你正确地处理了回调函数,并在回调函数中获取到了正确的结果。
  3. 数据处理问题:如果你在使用console.log打印结果时发现有项,但在返回的结果中却是undefined,可能是因为你在处理数据时出现了错误。请检查你的数据处理逻辑,确保你正确地处理了返回结果,并从中获取到了正确的项。

总结:根据问题描述,我们无法给出具体的解决方案,因为我们无法确定具体的函数。但是,我们提供了一些可能导致这种情况发生的常见原因和解决方法,希望能对你有所帮助。如果你能提供更多的上下文信息或者具体的函数名,我们可以给出更具体的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript数组方法详解

,填充到数组,类似于替换 是 concat() ES3- 合并数组,并返回合并之后数据 否 join() ES3- 使用分隔符,将数组转为字符串并返回 否 slice() ES3- 截取指定位置数组...() ES5- 反向查询并返回数据索引 否 forEach() ES6- 参数为函数,会遍历数组所有的函数接受三个参数,分别为value,index,self;forEach没有返回值 否...//因为函数没有return true,默认返回undefined,等同于返回false //demo2: var arr = ["Tom","abc","Jack","Lucy","Lily...index:元素对应索引 self:数组自身 (1)功能1 因为要判断数组每一,只要有一个函数返回true,some都会返回true,所以与every正好相反,当遇到一个函数返回值为...打印结果为:第一次,函数第一个参数是数组第一

79210

JS数组方法大全

(a); //true 19.some() 功能:判断数组是否存在满足条件,只要有一满足条件,就会返回true。...功能1:因为要判断数组每一,只要有一个函数返回true,some都会返回true,所以与every正好相反,当遇到一个函数返回值为true时,可以确定结果,那么停止执行,后面都数据不再遍历...// 打印结果为:第一次,函数第一个参数是数组第一。...--50--4--true // 此时函数有return,所以从第二次开始,prev拿到函数return值 //demo5:使用reduce计算数组中所有数据和...(sum); //150 // 函数最后一次return结果被返回到reduce方法身上 //demo6:使用reduce计算数组中所有数据和 var arr

4.3K10

JS数组常用方法大全

返回undefined filter 遍历数组,返回符合条件数组,无则返回空数组 map 遍历数组,返回一个新数组,不改变原数组 forEach 遍历数组,对数组每一个元素执行一次函数,无返回值...这两个方法都返回要查找在数组位置,或者在没找到情况下返回1。在比较第一个参数与数组每一时,会使用全等操作符。...0,cur值为数组第一3,相加之后返回值为3作为下一轮prev值,然后再继续与下一个数组项相加,以此类推,直至完成所有数组项和并返回 下面代码用reduce()实现数组求和,数组一开始加了一个初始值...3,cur值为数组第二9,取两值最大值后继续进入下一轮 c....(如果没有返回值,新数组每一个元素都为undefined) forEach()方法也是用于对数组每一个元素执行一次函数,但它没有返回值(或者说它返回值为undefined,即便我们在函数写了

3K30

util.promisify 那些事儿

工具实现大致思路 首先要解释一下这种工具大致实现思路,因为在Node异步有一个约定:Error first,也就是说函数第一个参数一定要是Error对象,其余参数才是正确时数据。...检测到err有值,触发reject,其他情况触发resolve resolve 只能传入一个参数,所以callback没有必要使用...arg获取所有的返回值 常规使用方式 拿一个官方文档示例...自定义 Promise 化 有那么一些场景,是不能够直接使用promisify来进行转换,有大概这么两种情况: 没有遵循Error first callback约定函数 返回多个参数函数...('util') // 比如我们有一个对象,提供了一个返回多个参数版本函数 const obj = { getData (callback) { callback(null, 'Niko...,官方做法也是将函数签名参数名作为key,将其所有参数存放到一个Object对象中进行返回,比如child_process.exec返回值抛开error以外会包含两个,stdout和stderr

83120

深入seajs源码系列三

入口方法可以接受2个参数,第一个参数为模块名称,第二个为函数。入口方法定义了一个新模块,这个新定义模块依赖入参提供模块。然后设置新模块函数,用以在loaded状态之后调用。...该回函数主要是执行所有依赖模块工厂函数,最后在执行入口方法提供。...() } // 函数入参对应依赖模块返回值 if (callback) { callback.apply(global, exports) }...加载依赖之load方法          load方法可谓是seajs精华所在。该方法主要加载依赖模块并依次执行依赖模块函数,最终执行函数则是通过seajs.use(“....模块执行之exec         模块执行是在seajs.use定义mod.callback调用,依次调用所有依赖exec方法,执行程序逻辑。

71260

JS原生引用类型解析2-Array类型

/ 3 console.log(arr[1]); // undefined返回一个长度是传入值且每一都是undefined数组。...在每一个数组元素都分别执行完函数之前,数组length属性会被缓存在某个地方,所以,如果你在函数为当前数组添加了新元素,那么那些新添加元素是不会被遍历到。...Array.prototype.forEach() 为数组每个元素执行一次函数。 注意:该方法没有返回值。...Array.prototype.reduce() 从左到右为每个数组元素执行一次函数,并把上次回函数返回值放在一个暂存器传给下次回函数,并返回最后一次函数返回值。...Array.prototype.reduceRight() 从右到左为每个数组元素执行一次函数,并把上次回函数返回值放在一个暂存器传给下次回函数,并返回最后一次函数返回值。

1.5K20

学习笔记-正则表达式

返回值:如果匹配成功,返回正则表达式在字符串首次匹配索引。...(regexp.test(name)) { //返回正则表达式匹配字符串 console.log(RegExp['$&']); // am //返回被搜索字符串从最后一个匹配位置开始到字符串结尾之间字符...* 第一次打印123 * 第二次打印44565 * 第三次打印987 * 第四次打印 33234 */ }); /* * 如下函数,函数参数一共有四个...语法:regexObj.exec(str) 返回:如果匹配成功,返回一个数组,并更新正则表达式对象属性。返回数组将完全匹配成功文本作为第一,将正则括号里匹配成功作为数组填充到后面。...4.9 返回字符串 中文字符个数 分析: 使用replace方法把不是中文字符全部替换成空,返回被替换字符,都是中文字符,计算长度 let str = "aaa肖瑶bbb嘻嘻哈哈111" let

23140

Nodejs学习笔记(九)--- 与Redis交互(mranneynode_redis)入门

简介和安装 redis简介: 开源高性能key-value存储;采用内存(in-memory)数据集方式,也可以采用磁盘存储方式(前者性能高,数据可能丢失,后者正好相反) 支持字符串(strings...,第二个为函数!...,当这个stream被连接时会触发connect,           这时候就可以自由尝试发命令   redis.print:简便函数,测试时显示返回值(从示例输出结果可以看出)   其它补充说明...)返回一个Multi对象,它包含了所有命令,直到Multi.exec()被调用; Multi.exec( callback )函数参数err:返回null或者Array,出错则返回对应命令序列链中发生错误错误信息...,这个数组中最后一个元素是源自exec本身一个EXECABORT类型错误   Multi.exec( callback )函数参数results:返回null或者Array,返回命令链每个命令返回信息

1.4K80

目前可以使用ES105个新特性

它首先使用提供函数返回值创建一个新数组,然后连接该数组所有子数组元素。...return []; } else { return Math.round(value); } }); // returns: // => [7, 8, 9] 除了正在处理的当前元素外,函数还将接收元素索引和对数组本身引用...) { // 这里函数已经帮我们处理好错误 } 此代码catch信息并没有用处。...并且g标志指示引擎在整个字符串搜索模式。 之前,必须在循环中使用exec()方法来实现相同结果,这不是非常有效: const re = /(Dr\.)...Anderson", groups: undefined] 重要是要注意尽管match() 方法可以与全局标志g一起使用来访问所有匹配,但它不提供匹配捕获组或索引位置。

1.4K30

web前端面试题:您能读懂Promise源码实现(手写代码)

2、让then函数直接返回Promise 3、更改promise状态:异常执行reject,其它均执行resolve •验证参数是否为函数: // 防止使用者不传成功或失败函数,所以成功失败都给了默认函数...2、我们知道then在其函数返回非Promise数据,最终得到result是一个为resolved状态Promise(成功状态),倘若返回是一个Promise数据,那么最终得到便是该Promise...效果虽然出来了,但是这样代码确实有些臃肿。 所以要对其进行优化:不难发现两个case内代码除了函数不同,其它都是一样,所以我们可以将其进行封装,并将回函数作为参数传递。...也就是说我们更改状态后,方法没有得到执行。如果此时我们将封装then函数当中setTimeout移除掉,则会恢复正常,将其移除掉封装也就失去了意义。...// 当状态为 pending 时,将要执行函数放置到队列,待状态更改完毕后再调用。

84520

Webpack 插件架构深度讲解

with "我就是要报错" SyncBailHook 钩子 基本逻辑 bail 单词有熔断意思,而 bail 类型钩子特点是在队列,若任一返回了非 undefined 值,则中断后续处理...虽然 Tapable 提供了 SyncLoopHook 钩子, webpack 源码并没有使用到,所以读者理解用法就行,不用深究。...AsyncParallelBailHook :异步 + 并行 + 熔断,启动后同时执行所有任意返回值时,忽略剩余未执行完,直接返回该结果 AsyncSeriesBailHook :...异步 + 串行 + 熔断,启动后按序逐个执行,过程若有任意返回undefined 值,则停止后续调用,直接返回该结果 AsyncSeriesLoopHook: 异步 + 串行 + 循环,启动后按序逐个执行...,若有任意返回undefined 值,则重复执行该回直到返回 undefined 后,才继续执行下一个 动态编译 基本逻辑 Tapable 最大秘密就是其内部实现了一套非常大胆设计:动态编译

1.6K20

Promise

这两个参数返回值可以是以下三种情况一种: return 一个同步值 ,或者 undefined(当没有返回一个有效值时,默认返回undefined),then方法将返回一个resolved状态...第二个then没有返回值,因此将返回默认undefined,于是在第三个then输出undefined。...第三个then和第四个then中分别返回一个状态是resolvedPromise和一个状态是rejectedPromise,依次由第四个then成功函数和第五个then失败函数处理。..."success" Promise接收函数参数是同步执行then方法函数执行则是异步,因此,"success"会在后面输出。...Promise函数第二个参数reject不具备”拆箱“能力,reject参数会直接传递给then方法rejected

58520

Javascript数组系列三之你不了解迭代2

还是按照以往惯例,我们先来看看「reduce」参数和语法 该方法接受两个参数,一个是元素每一执行函数;一个是可选参数,作为第一次调用函数初始值(也就是第一次累加值) 传入函数会接受四个参数分别是...这里存在两种情况: 如果我们在使用「reduce」方法时候,提供可选初始值(initialValue),在函数第一次执行时候,第一次累计值会默认取值为给定初始值,当前参与计算元素会从数组第一开始...,第一次累计值为数组第一,当前参与计算值为数组第二(即: accumulator = array0, currentValue = array1) 简单来说如果我们提供初始值,函数会从数组第二...(index=0)开始执行,反之函数会从数组第一开始执行(index=1),这就是上面例子输出索引结果不同原因。...该方法接受两个参数,一个是元素每一执行函数,一个是可选参数,函数运行时 this 值。

65030

滴滴前端一面经典手写面试题

实现bind实现bind要做什么返回一个函数,绑定this,传递预置参数bind返回函数可以作为构造函数使用。故作为构造函数时应使得this失效,但是传入参数依然有效// mdn实现if (!...接口对象作为参数这个方法返回一个新 promise 对象,遍历传入参数,用Promise.resolve()将参数"包一层",使其变成一个promise对象参数所有调成功才是成功,返回值数组与参数顺序一致参数数组其中一个失败...这个方法可以简单粗暴实现深拷贝,但是还存在问题,拷贝对象如果有函数,undefined,symbol,当使用过JSON.stringify()进行处理之后,都会消失。..._events获取对应事件函数 handler = this...._events获取对应事件函数 handler = this.

86920

ES6数组新增

示例代码: 将arr1第一开始替换6-3个替换成arr1第3到6。...它参数是一个函数,所有数组成员依次执行该回函数,直到找出第一个返回值为true成员,然后返回该成员(循环终止)。如果没有符合条件成员,则返回undefined。...,并将所有元素与遍历到子数组元素合并为一个新数组返回。...(注意:flat() 方法会移除数组) 示例代码: [1, 2, [3, [4, 5]]].flat() // [1, 2, 3, [4, 5]] [1, 2, [3, [4, 5]]].flat...它与 map 和 深度值1 flat 几乎相同, flatMap 通常在合并成一种方法效率稍微高一些。它返回 一个新数组,其中每个元素都是函数结果,并且结构深度 depth 值为1。

64820

Javascript数组系列二之迭代方法2

还是按照以往惯例,我们先来看看「reduce」参数和语法 该方法接受两个参数,一个是元素每一执行函数;一个是可选参数,作为第一次调用函数初始值(也就是第一次累加值) 传入函数会接受四个参数分别是...这里存在两种情况: 如果我们在使用「reduce」方法时候,提供可选初始值(initialValue),在函数第一次执行时候,第一次累计值会默认取值为给定初始值,当前参与计算元素会从数组第一开始...,第一次累计值为数组第一,当前参与计算值为数组第二(即: accumulator = array[0], currentValue = array[1]) 简单来说如果我们提供初始值,函数会从数组第二...(index=0)开始执行,反之函数会从数组第一开始执行(index=1),这就是上面例子输出索引结果不同原因。...该方法接受两个参数,一个是元素每一执行函数,一个是可选参数,函数运行时 this 值。

49820

2021年前端各大公司都考了那些手写题(附带代码)

),其参数不带以上回函数就会在两位数及以上时出现排序错误(如果省略,元素按照转换为字符串各个字符 Unicode 位点进行排序。...使用扩展运算符将Set数据结构转为数组 } 复制代码 Set 元素只会出现一次,即 Set 元素是唯一。... map 键可以是任意类型,对象键只能是字符串类型。 如果数组只有数字也可以使用普通对象作为哈希表。...false,直接返回false // 如果循环执行完毕,意味着所有返回值为true,最终结果为true var flag = true; for (var i = 0; i<...true,直接返回该数组元素 // 如果循环执行完毕,意味着所有返回值为false,最终结果为undefined for (var i = 0; i<_arr.length; i++

42820
领券