簡體   English   中英

如何在瀏覽器中使用 `Headers` 迭代器?

[英]How do I use the `Headers` iterator in the browser?

我正在嘗試按照Iterator docs使用Headers迭代器。

  let done = false
  while ( ! done ) {
    let result = headers.entries()
    if ( result.value ) {
      console.log(`yaay`)
    } 
    if ( result.done ) {
      console.log(`finished`)
      done = true
    } 
  }

我收到 TypeScript 錯誤:

Property 'value' does not exist on type 'IterableIterator<[string, string]>'.

但是根據規范,屬性value應該存在於任何迭代器上,並且headers.entries()返回一個迭代器。

如何從標頭 object 中獲取值?

但是根據規范,屬性value應該存在於任何Iterator

不,它存在於Iterator.next()方法返回的迭代器結果 object 中。 所以你會做

const iter = headers.entries();
let { value, done } = iter.next();
while (!done) {
    console.log('yay', value);
    ({ value, done } = iter.next());
}
console.log('finished');

但是,您永遠不會自己實現迭代協議。 您只需使用for … of

for (const value of headers.entries()) {
    console.log('yay', value);
}
console.log('finished');

您可以使用Array.from(headers)並使用常規 map/forEach 方法進行操作。

 const headers= new Headers({some: 'thing'}) Array.from(headers).forEach(([key,val])=>{console.log(key,val)})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM