Javascript 如何将AJAX成功分配给Object.assign ES5[不同]
我给一个对象赋值,我需要给一个ajax响应生成的值赋值 这是我的分配代码行:Javascript 如何将AJAX成功分配给Object.assign ES5[不同],javascript,arrays,json,Javascript,Arrays,Json,我给一个对象赋值,我需要给一个ajax响应生成的值赋值 这是我的分配代码行: var object1 = object1.map(function(el) { var o = Object.assign({}, el); $.ajax({ url: "/api/getcolor?age=7, // this will return a sequence of object according to
var object1 = object1.map(function(el) {
var o = Object.assign({}, el);
$.ajax({
url: "/api/getcolor?age=7, // this will return a sequence of object according to the item in object1 e.i {"color":"red"} {"color":"blue"} {"color":"yellow"}
type: 'GET',
dataType: 'json',
success: function(data) {
console.log("data: "+JSON.stringify(Object.values(data)))
var myColors = JSON.stringify(Object.values(data))
}
});
o.color= myColors ; // reassigning to object colors --> which means whatever was resturned from the ajax response should replaceeach value in object > o.color
}
我的问题是,如何在ajax响应之外访问变量mycolor并将其分配给o.color?
有没有更好的方法来实现这一点
谢谢
如何访问ajax响应之外的变量mycolor
。。。异步-而且,myColors
将是一个字符串
-可能不是您想要的…顺便说一句对象。assign
是ES6,而对象。如果返回$.ajax,则value
是ES8,而不是ES5:-)({
并将o.color=
行移动到成功函数中可用的位置…然后您可以Promise.all(object1)。然后(函数(结果){…})
-在…
中,您将拥有所有results@JaromandaX我正在返回..返回o;让我试着按照建议返回ajax DL;DR:这与其他问题非常相似。你正在无意中了解异步处理的基本原理,就像每个新手最终偶然发现它一样,你需要接受它这是一个很好的解决方法,而不是试图与之抗争。