gpt4 book ai didi

javascript - Q.all() promise 无法正确解决延迟 promise

转载 作者:行者123 更新时间:2023-11-28 02:10:14 24 4
gpt4 key购买 nike

我多次调用 POST 以便在服务器上创建对象。 POST 包含在一个 promise 中。我创建了一个 Promise 数组并将其传递给 Q.all,但是当它被解析时,数组中的所有对象都具有相同的 id,并且在服务器上只创建了一个对象。

这是我的代码

for (var i = txArray.length - 1; i >= 0; i--) {                
txArray[i]._action = 'update';
promises.push(newVertex(url));
};
return Q.all(promises).then(function(result){
console.log(result);
});

function newVertex(url) {
var deferred = Q.defer();
var xhr;

try {
xhr = new_xhr();
} catch (e) {
deferred.reject(-1);
return deferred.promise;
}

xhr.open('POST', url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
deferred.resolve(xhr.responseText);
} else {
deferred.reject(xhr);
}
}
};

xhr.send();
return deferred.promise;
}

结果返回所有具有相同 id 的对象。不知道为什么?大家有什么建议吗?

最佳答案

我已经成功解决了这个问题。 POST 的 header 为 Content-Type:application/json。因此,服务器期望将一些数据传递给它。传递一些 json 数据甚至“{}”解决了该问题。

例如:

xhr.send('{}');

感谢每个机构的反馈,这一切都有帮助。

关于javascript - Q.all() promise 无法正确解决延迟 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218688/

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