export default function Dev() {
const [reqList, setReqList] = useState([]);
useEffect(() => {
chrome.devtools.network.onRequestFinished.addListener(async (...args) => {
log(args);
try {
const [
{
// 请求的类型,查询参数,以及url
request: { method, queryString, url },
// 该方法可用于获取响应体
response,
time,
timing,
startedDateTime,
getContent,
},
] = args;
log(method, response, queryString, url);
// 将callback转为await promise
// warn: content在getContent回调函数中,而不是getContent的返回值
const content = await new Promise((res, rej) => getContent(res));
// log(content);
log(reqList);
setReqList([
{
method: method,
start: new Date(startedDateTime).toLocaleTimeString(),
url: url,
receive: 999,
wait: 999,
all: time,
code: response.status,
words: 'someWords',
user: '某某',
mocker: '某某',
},
...reqList,
]);
} catch (err) {
log(err.stack || err.toString());
}
});
}, []);
return (
<>
<AppBar />
<div className="d-flex">
<div className="left">
<RequestTable rows={reqList} rowClick={() => {}} />
</div>
<div className="right"></div>
</div>
</>
);
}
如上面代码所示,传给RequestTable组件的rows这个props永远是长度为的数组?怎么理解
Promise被resolve了么