const obj = { name1: 'name1', name2: 'name2', name3: 'name3', name4: 'name4', name5: 'name5', [Symbol.asyncIterator](){ const keys = Object.keys(this); let index = 0; return { next: () => { if(index < keys.length){ return Promise.resolve({ value: this[keys[index++]], done: false }) } return Promise.resolve({ done: true }) } } } } (async()=>{ for await (let item of obj){ console.log(item) } })()