Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 循环中的HTTP.post()回调_Javascript_Http_Meteor_Callback - Fatal编程技术网

Javascript 循环中的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]); }

我的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]);
        }
        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]上有一个打字错误
也许就是这样?