【发布时间】:2021-09-25 15:49:48
【问题描述】:
我手动将一个 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 是返回单个承诺还是一组承诺? Promise.all 通常用于一系列承诺。
-
因为
response.json()也是一个承诺。 -
@AlexanderStaroselsky 这取决于我调用了多少个网址。如果有两个 url,则返回 Promise {
, a: '123' } Promise { , a: '123' } -
另外, a: "123" 只是为了演示目的,实际上,我调用的不同 url 的键值会发生变化。比如我要添加的json对象可以是{url: "the-actual-url"}
-
@Andy 是否可以将 new_json 连接到 new_response 以便它们成为 .then() 中的一个 json 对象?
标签: javascript json promise fetch node-fetch