标签:promises resolve let Promise reject promise const
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>promise.all</title> </head> <body> <script> let link = `https://github.com/shfshanyue/Daily-Question/issues/500`; function pAll(_promises) { return new Promise((resolve, reject) => { // Iterable => Array const promises = Array.from(_promises); // 结果用一个数组维护 const r = []; const len = promises.length; let count = 0; for (let i = 0; i < len; i++) { // Promise.resolve 确保把所有数据都转化为 Promise Promise.resolve(promises[i]) .then(o => { // 因为 promise 是异步的,保持数组一一对应 r[i] = o; // 如果数组中所有 promise 都完成,则返回结果数组 if (++count === len) { resolve(r); } // 当发生异常时,直接 reject }) .catch(e => reject(e)); } }); } </script> <script> const sleep = seconds => new Promise(resolve => setTimeout(() => resolve(seconds), seconds)); </script> <script> function promiseAll(_promises) { return new Promise((resolve, reject) => { const promises = [..._promises]; const arr = []; let count = 1; for (let i = 0; i < promises.length; i++) { Promise.resolve(promises[i]).then( data => { arr[i] = data; if (++count === promises.length) { resolve(arr); } }, err => { reject(err); } ); } }); } </script> <script> function makeIterator(array) { let nextIndex = 0; return { next: function () { return nextIndex < array.length ? { value: array[nextIndex++], done: false } : { done: true }; } }; } let it = makeIterator(['哟', '呀']); console.log(it.next().value); // '哟' console.log(it.next().value); // '呀' console.log(it.next().done); // true </script> </body> </html>
标签:promises,resolve,let,Promise,reject,promise,const 来源: https://www.cnblogs.com/pengxiangchong/p/16221045.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。