0
以下两个函数交换承诺解析数据。第二个函数应该将对象返回到第一个函数的内部承诺,但它不会。JS承诺未按预期解决
let functionA = function (stuff) {
var responseToGet;
return fetch(someURL
{
method: 'GET',
headers: {headers},
})
.then((resp) => {
responseToGet = resp;
return functionB(responseToGet)
})
.then((respFromB) => {
console.log('respFromB', respFromB); // WHY IS THIS UNDEFINED INSTEAD OF TRUE/FALSE ?
if (respFromB.status)
return null;
else
return respFromB.jsonObj;
})
.catch((error) => {
console.log(error);
});}
let functionB = function(response)
{
response.json().then((r2) => {
if (something)
return Promise.resolve({status: true, jsonObj: null});
else
return Promise.resolve({status: false, jsonObj: r2});
})
.done();}
你'functionB'不'return'什么。 – Bergi
什么是'.done()'调用? – Bergi
@Bergi .done就像.then和.catch,但是它可以在没有任何异常抛出的情况下成功解析。 你可以修改它来获得我期待的结果吗? –