所以,我有两个ajax调用,它们被链接在一个承诺中。
例如
promiseData.then(res1, res2) {
let responseOneParsed = JSON.parse(res1)
let responseTwoParsed = JSON.parse(res2)
}
我正在连接这两个,就像这个
concatenatedArr = responseOneParsed.data.concat(responseTwoParse.data)
所以,这很清楚。
但是,有时这两个ajax调用中的一个返回undefined
,因为响应是空的(应该是),并且我得到错误:
error TypeError: Cannot read property 'concat' of undefined
这又是非常清楚的,但是我如何扩展此代码以接受其中一个参数,如果其他参数是undefined
,那么它不会失败?这里错误地使用了.concat()
吗?
答案 0 :(得分:4)
您可以使用||
运算符和empty array: []
concatenatedArr = (responseOneParsed.data || []).concat(responseTwoParse.data || [])
答案 1 :(得分:1)
这不仅仅是一次正确的理智检查吗?
检查responseOneParsed.data是否有效,如果是,则调用concat,否则,应用第二个数据。
concatenatedArr = responseOneParsed.data ?
responseOneParsed.data.concat(responseTwoParse.data ? responseTwoParse.data: [] )
:responseTwoParse.data