【发布时间】:2018-11-23 11:45:10
【问题描述】:
所以,我有两个 ajax 调用,它们链接在一个 Promise 中。
例如
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() 这里用错了吗?
【问题讨论】:
-
来个基本的检查怎么样,比如
if (responseOneParsed.data) ... -
我理解为什么会发生这种情况@JonathanLonowski,但需要检查这种情况..
-
第二个响应未定义时不会出错,因为它作为参数传递给函数,它没有调用函数。当我们使用未定义的值调用函数时,我们会收到问题中提到的错误。
-
当结果为空时让API返回
[],这样代码就一直有效。 -
@ChrisG,我不能 API 来自第三方。如果未定义,则根本不是返回数组,而是返回对象。
标签: javascript jquery html arrays promise