Angular $http.get “Uncaught SyntaxError: Unexpected token )” 没有文件引用,更不用说行号
•浏览 1
Angular $http.get "Uncaught SyntaxError: Unexpected token )" No file reference, let alone a line number
在这个问题上我已经走到了尽头。我在我的应用程序中看似随机的地方收到此错误。 Raven 从几十个位置报告它们,但我只能在本地复制几个。在我看来,问题与解析 JSON 响应有关,但响应是有效的。
在我的 Angular 服务中...
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
在我的 Express 控制器中...
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
这是一个示例响应...
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
在 Chrome 和 Safari 中,这都会导致错误"Uncaught SyntaxError: Unexpected token )"
这是来自 Chrome 的请求标头...
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
所有其他类似问题都指向 JSONP 或实际语法问题,但我没有使用 JSONP,也没有任何代码语法问题。
- 您的错误似乎与某些 JSON 解析功能有关
- 您的示例响应标头说"application/json; charset=utf-8"
鉴于此,看起来您不需要使用任何解析功能,但缺少一些东西。
如果你不能总是重现它,我会启用记录网络调用,这样你就可以看到准确地检索出哪些响应会带来麻烦。
由于我不知道您的具体情况,所以无法提供确切的答案。但是,这是我的尝试。
我看到您的服务没有返回任何内容,而是在其中处理成功和错误函数。
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
你的错误(错误)是正确的吗?我假设您将错误函数作为参数传递,但我发现 success(data) 和 error
之间存在不一致
这是建议。我认为你应该改变你的服务只返回Promise,而不是处理任何事情。所以,它应该看起来像这样。
... getThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); } ...... res.json(mssgs); ...[ { "id": 79, "body":"test", "senderArchived": false, "recipientArchived": false, "createdAt":"2014-04-17T01:44:46.762Z", "updatedAt":"2014-04-17T01:44:46.762Z", "RootMessageId": 69, "SenderId": 164050, "RecipientId": 154040, "sender": { "username":"boca", "id": 164050, "primaryMedium": null }, "recipient": { "username":"quimby", "id": 154040, "primaryMedium": { "id":"186", "type":"image", "nativeURL":"https://domain/imageurl.jpg", "mediumURL":"https://domain/imageurl.jpg", "smallURL":"https://domain/imageurl.jpg", "createdAt":"2014-04-21T15:52:10.927Z", "updatedAt":"2014-04-21T15:52:10.947Z", "CommentId": null, "EventId": null, "UserId": 154040, "PostId": null, "MessageId": null, "MediaFolderId": null } }, "messageMedia": [] } ]Remote Address:127.0.0.1:3001 Request URL:https://localhost:3001/message/69 Request Method:GET Status Code:200 OK Request Headers Accept:application/json, text/plain, */* Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,ja;q=0.6 Connection:keep-alive Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D Host:localhost:3001 Referer:https://localhost:3001/messages User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 Response Headers Connection:keep-alive Content-Length:1115 Content-Type:application/json; charset=utf-8 Date:Tue, 29 Apr 2014 02:41:47 GMT ETag:"485872145" X-Powered-By:ExpressgetThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); }getThread: function(id) { return $http.get('/message/'+id); }MyService.getThread(id).then( function(data) {....}, function(error) {....} }getThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); }
然后你的控制器处理成功和错误,这样你就可以看到所有的成功信息和错误信息。因此,控制器将具有如下代码
... getThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); } ...... res.json(mssgs); ...[ { "id": 79, "body":"test", "senderArchived": false, "recipientArchived": false, "createdAt":"2014-04-17T01:44:46.762Z", "updatedAt":"2014-04-17T01:44:46.762Z", "RootMessageId": 69, "SenderId": 164050, "RecipientId": 154040, "sender": { "username":"boca", "id": 164050, "primaryMedium": null }, "recipient": { "username":"quimby", "id": 154040, "primaryMedium": { "id":"186", "type":"image", "nativeURL":"https://domain/imageurl.jpg", "mediumURL":"https://domain/imageurl.jpg", "smallURL":"https://domain/imageurl.jpg", "createdAt":"2014-04-21T15:52:10.927Z", "updatedAt":"2014-04-21T15:52:10.947Z", "CommentId": null, "EventId": null, "UserId": 154040, "PostId": null, "MessageId": null, "MediaFolderId": null } }, "messageMedia": [] } ]Remote Address:127.0.0.1:3001 Request URL:https://localhost:3001/message/69 Request Method:GET Status Code:200 OK Request Headers Accept:application/json, text/plain, */* Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,ja;q=0.6 Connection:keep-alive Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D Host:localhost:3001 Referer:https://localhost:3001/messages User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 Response Headers Connection:keep-alive Content-Length:1115 Content-Type:application/json; charset=utf-8 Date:Tue, 29 Apr 2014 02:41:47 GMT ETag:"485872145" X-Powered-By:ExpressgetThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); }getThread: function(id) { return $http.get('/message/'+id); }MyService.getThread(id).then( function(data) {....}, function(error) {....} }getThread: function(id, success, error) { $http.get('/message/'+id).success(function(data){ success(data); }).error(error); }
在您的控制器中拥有数据处理逻辑会给您的调试带来更大的困难。
我建议您在控制器中处理 http 数据,而不是在服务中。
你是否在
中传递了一个 null 作为 id
...
getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
......
res.json(mssgs);
...[
{
"id": 79,
"body":"test",
"senderArchived": false,
"recipientArchived": false,
"createdAt":"2014-04-17T01:44:46.762Z",
"updatedAt":"2014-04-17T01:44:46.762Z",
"RootMessageId": 69,
"SenderId": 164050,
"RecipientId": 154040,
"sender": {
"username":"boca",
"id": 164050,
"primaryMedium": null
},
"recipient": {
"username":"quimby",
"id": 154040,
"primaryMedium": {
"id":"186",
"type":"image",
"nativeURL":"https://domain/imageurl.jpg",
"mediumURL":"https://domain/imageurl.jpg",
"smallURL":"https://domain/imageurl.jpg",
"createdAt":"2014-04-21T15:52:10.927Z",
"updatedAt":"2014-04-21T15:52:10.947Z",
"CommentId": null,
"EventId": null,
"UserId": 154040,
"PostId": null,
"MessageId": null,
"MediaFolderId": null
}
},
"messageMedia": []
}
]Remote Address:127.0.0.1:3001
Request URL:https://localhost:3001/message/69
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Connection:keep-alive
Cookie:streamLoc=%7B%22distance%22%3A-1%2C%22locName%22%3A%22%22%7D; usePostLocation=yes; connect.sid=s%3AhX37rupUct2jut4yApN1GIH9.n5nPURTMXl5OKd46rMqeRc4bg1Q%2F%2Bky0El2r%2BcBvC8c; user=%7B%22id%22%3A154040%2C%22role%22%3A%7B%22bitMask%22%3A32%2C%22title%22%3A%22admin%22%7D%2C%22username%22%3A%22quimby%22%2C%22emailVerified%22%3Atrue%2C%22verified%22%3Atrue%7D
Host:localhost:3001
Referer:https://localhost:3001/messages
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
Response Headers
Connection:keep-alive
Content-Length:1115
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Apr 2014 02:41:47 GMT
ETag:"485872145"
X-Powered-By:ExpressgetThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}getThread: function(id) {
return $http.get('/message/'+id);
}MyService.getThread(id).then(
function(data) {....},
function(error) {....}
}getThread: function(id, success, error) {
$http.get('/message/'+id).success(function(data){
success(data);
}).error(error);
}
解析 $http.get('/message/' )
时会出现语法错误
在 $http 调用之前插入一个 null 测试并等待它被命中。