完成后将结果保存在 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);
});