Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这里是否错误地使用了.concat()方法?_Javascript_Jquery_Html_Arrays_Promise - Fatal编程技术网

Javascript 这里是否错误地使用了.concat()方法?

Javascript 这里是否错误地使用了.concat()方法?,javascript,jquery,html,arrays,promise,Javascript,Jquery,Html,Arrays,Promise,因此,我有两个ajax调用,它们被链接在一个承诺中 比如说 promiseData.then(res1, res2) { let responseOneParsed = JSON.parse(res1) let responseTwoParsed = JSON.parse(res2) } 我把这两个连接起来,就像这样 concatenatedArr = responseOneParsed.data.concat(responseTwoParse.data) 所以,这是清楚的。 但是,有时

因此,我有两个ajax调用,它们被链接在一个承诺中

比如说

promiseData.then(res1, res2) {
 let responseOneParsed = JSON.parse(res1)
 let responseTwoParsed = JSON.parse(res2)
}
我把这两个连接起来,就像这样

concatenatedArr = responseOneParsed.data.concat(responseTwoParse.data)
所以,这是清楚的。 但是,有时这两个ajax调用中的一个返回未定义的,因为响应是空的(应该是),我得到了错误:

  error  TypeError: Cannot read property 'concat' of undefined

这也是非常清楚的,但是如果另一个参数是
未定义的
,那么我如何缩放此代码以接受其中一个参数,这样它就不会失败?这里的
.concat()
是否使用错误?

您可以使用
|
运算符和
空数组:[]

像这样
concatenatedArr=(responseOneParsed.data | |【】)concat(responseWebParse.data | |【】)

这不就是正确的健全性检查吗

检查responseOneParsed.data是否有效,如果有效,请调用concat,否则,应用第二个数据

 concatenatedArr = responseOneParsed.data ? 
   responseOneParsed.data.concat(responseTwoParse.data ? responseTwoParse.data: [] )
   :responseTwoParse.data

一个非常基本的检查怎么样,比如
if(responseOneParsed.data).
我理解@JonathanLonowski为什么会发生这种情况,但需要检查这种情况..当第二个rsponse未定义时,它不会给出错误,因为它是作为参数传递给函数的,它没有调用函数。当我们使用未定义的值调用函数时,就会出现问题中提到的错误。只要在结果为空时让API返回
[]
,代码就会一直工作。@ChrisG,我不能确定API来自第三方。若它是未定义的,那个么它根本并没有返回数组,而是返回对象。它是一条双向的街道,ResponseTo也可以是未定义的,不仅仅是responseOne@stormec所以这是一次精神检查。。美好的工作起来很有魅力!