Javascript 循环中的HTTP.post()回调
我的meteor服务器上有一个HTTP.post()循环:Javascript 循环中的HTTP.post()回调,javascript,http,meteor,callback,Javascript,Http,Meteor,Callback,我的meteor服务器上有一个HTTP.post()循环: for (var i = 0; i < smsMessages.length; i++) { HTTP.post("https://smsapiaddress/sms.do", smsMesseges[i], function(error, result) { if (error) { setErrorInDatabase(smsMessages[i]); }
for (var i = 0; i < smsMessages.length; i++) {
HTTP.post("https://smsapiaddress/sms.do", smsMesseges[i], function(error, result) {
if (error) {
setErrorInDatabase(smsMessages[i]);
}
if (result) {
setResultInDatabase(smsMessages[i]);
}
});
for(变量i=0;i
如何轻松地将正确的SMSMessage[I]传递到回调函数中?因为
http
请求是asynchronous
的I
值将为所有请求共享。在for
循环中使用闭包。它将为每次迭代保留I
的单独副本
请参见代码中突出显示的注释:
for (var i = 0; i < smsMessages.length; i++) {
(function(i) {
// ^^^^^^^^^^^
HTTP.post("https://smsapiaddress/sms.do", smsMessages[i], function(error, result) {
if (error) {
setErrorInDatabase(smsMessages[i]);
}
if (result) {
setResultInDatabase(smsMessages[i]);
}
});
}(i)); // call the function with the current value of i
// ^^^
}
for(变量i=0;i
你在第3行的SMSMessages[i]上有一个打字错误
也许就是这样?