gpt4 book ai didi

javascript - 循环中的 HTTP.post() 回调

转载 作者:可可西里 更新时间:2023-11-01 17:08:18 24 4
gpt4 key购买 nike

我的 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]);
}
});

我怎样才能轻松地将正确的 smsMessages[i] 传递到回调函数中?

最佳答案

因为 http 请求是异步 i 的值将被所有请求共享。在 for 循环中使用 closures。它将为每次迭代保留一份单独的 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
// ^^^
}

关于javascript - 循环中的 HTTP.post() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31047525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com