完成后将结果保存在 Promise 中
Save results in Promise after it's done
我使用 Promise 做一个 http post。我可以看到 then()
中输出了结果。
以后如何访问data
?试过 resultPromise.then()
,没有产生相同的结果。
let resultPromise =
fetch(cleanUrl, {
method: 'POST', // or 'PUT'
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
//what I intent to do
if(data.isSafe == ture) {
//do something
}
else {
//do somehing
}
更新 1
添加了我想对数据执行的操作的描述。
更新 2
按照@Nicholas Tower 的建议将代码移入 then()
。
.then(data => {
console.log('Success:', data);
})
由于此处没有 return 值,因此它创建的承诺解析为 undefined
。要么删除这个 .then
(在这种情况下,之前的 .then
将确定该值),或者让它重新 return 数据。
.then(data => {
console.log('Success:', data);
return data;
})
.catch
块可能需要类似的处理。任何错误当前都被吞没并替换为解析为 undefined
。如果要重新抛出错误,请执行以下操作之一:
.catch((error) => {
console.error('Error:', error);
throw error;
});
// or
.catch((error) => {
console.error('Error:', error);
return Promise.reject(error);
});
我使用 Promise 做一个 http post。我可以看到 then()
中输出了结果。
以后如何访问data
?试过 resultPromise.then()
,没有产生相同的结果。
let resultPromise =
fetch(cleanUrl, {
method: 'POST', // or 'PUT'
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
//what I intent to do
if(data.isSafe == ture) {
//do something
}
else {
//do somehing
}
更新 1
添加了我想对数据执行的操作的描述。
更新 2
按照@Nicholas Tower 的建议将代码移入 then()
。
.then(data => {
console.log('Success:', data);
})
由于此处没有 return 值,因此它创建的承诺解析为 undefined
。要么删除这个 .then
(在这种情况下,之前的 .then
将确定该值),或者让它重新 return 数据。
.then(data => {
console.log('Success:', data);
return data;
})
.catch
块可能需要类似的处理。任何错误当前都被吞没并替换为解析为 undefined
。如果要重新抛出错误,请执行以下操作之一:
.catch((error) => {
console.error('Error:', error);
throw error;
});
// or
.catch((error) => {
console.error('Error:', error);
return Promise.reject(error);
});