如何解决Concat json to promise:如何从promise pending 中获取json 对象中的附加键值对
我手动将一个 json 对象连接到一个 promise。下面的代码在第一次打印时,cosole.log(new_response) 给了我这个,这就是我想要的
Promise { <pending>,a: '123' }
然而,第二次打印,cosole.log(data_json_array) 得到了没有键值的 json 对象,a: '123'
我不知道为什么会这样。我希望 json 对象包含键值 a:'123' 例如:
{
key1: "1",key2: "2",a: "123
}
提前致谢。
Promise.all(somefunction(parameter)).then(function (responses) {
return Promise.all(responses.map(function (response) {
new_json = {a: "123"}
var new_response = Object.assign(response.json(),new_json)
console.log(new_response)
return new_response
}.then(function (data) {
console.log(data)
})
解决方法
一种稍微不同的方法可能涉及更新 someFunction
以处理 json() 并处理将数据与提供的 url 合并。这有助于避免嵌套的 Promise.all
:
function someFunction(parameter) {
// create array of promises
return parameter.urls.map((url) =>
fetch(url)
// parse JSON
.then((res) => res.json())
// Merge data with url property
.then((data) => ({ ...data,url }))
);
}
Promise.all(
someFunction({
urls: [
"https://jsonplaceholder.typicode.com/todos/1","https://jsonplaceholder.typicode.com/todos/2",],})
).then((data) => console.log(data));
希望有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。