我多次调用 POST 以便在服务器上创建对象。POST 包含在一个承诺中。我创建了一组 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 的对象。不知道为什么?有没有人有什么建议。