對promise.all底層的實現的研究

1.Promise.all(iterable)返回一個新的Promise實例,此實例在iterable參數內素有的Promise都fulfilled或者參數中不包含Promise時,狀態變成fulfilled。 如果參數中Promise有一個失敗rejected ,此實例回調失敗,失敗原因的是第一個失敗Promise的返回結果
let p = Promise.all([m1,m2,m3])

Promise.all=function (promise) {
return new promise((resolve,reject)=>{
let index=0
let result =[]
if(promise.length===0){
resolve(result)
}else {
function processValue(i,data) {
result[i]=data
if(++i===promise.length){
resolve(result)
}
}
for (let i=0 ;i<promise.length;i++){
Promise.resolve(promise[i]).then((data)=>{
processValue(i,data)
},(err)=>{
reject(err)
return
}
)
}
}
})
}

?

轉載于:https://www.cnblogs.com/zhouyideboke/p/11237711.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue-provide/inject輕松實現跨級訪問祖先組件

provide&#xff1a;Object | () > Object inject&#xff1a;Array<string> | { [key: string]: string | Symbol | Object } provide 和 inject 主要為高階插件/組件庫提供用例。并不推薦直接用于應用程序代碼中。是2.2.0版本 新增的。 這對選項需要一起使用&#x…

python 操作redis,存取為字節格式,避免轉碼加

這種情況連接數據庫&#xff0c;對數據的存取都是字節類型&#xff0c;存取時還得轉碼一下 from redis import Redis# 實例化redis對象rdb Redis(hostlocalhost, port6379, db0,passwordaaa123) rdb.set(name, root) name rdb.get(name) print(name)為了避免上述情況&#x…

element ui table scrollTop 滾動到行頭或行尾

1.設置table的ref為tableList2.設置滾動至頂部this.$refs.tableList.bodyWrapper.scrollTop 0;3.設置滾動至底部this.$refs.tableList.bodyWrapper.scrollTop this.$refs.tableList.bodyWrapper.scrollHeight;//如果請求完更新數據&#xff0c;需要使用$nextTick this.$nextTic…

Element-UI中Drawer抽屜去除標題自帶藍色框

當點擊事件drawertrue時&#xff0c;抽匣回打開 這時抽匣的標題會出現一個難看的藍色邊框&#xff0c;一會就會消失&#xff0c;但是好丑&#xff0c;所以要去掉它 解決方法 /deep/ :focus {outline: 0;} vue組件中&#xff0c;在style設置為scoped的時候&#xff0c;里面在…

Java生鮮電商平臺-B2B生鮮的互聯網思維

Java生鮮電商平臺-B2B生鮮的互聯網思維 在互聯網高速發展的今天&#xff0c;為我們的生活帶來了眾多便利。然而互聯網從早期的萌芽狀態到現在婦孺皆知&#xff0c;它的崛起速度遠遠超乎世人的想象。人們開始關注互聯網并且研究它&#xff0c;而思維模式的研究則是從深層次研究事…

Java生鮮電商平臺-高并發核心技術訂單與庫存實戰

Java生鮮電商平臺-高并發核心技術訂單與庫存實戰 一、 問題 一件商品只有100個庫存&#xff0c;現在有1000或者更多的用戶來購買&#xff0c;每個用戶計劃同時購買1個到幾個不等商品。 如何保證庫存在高并發的場景下是安全的&#xff1f; &#xff08;1&#xff09;不多發 &…

Vue2 MVVM 雙向綁定(數據劫持+發布者-訂閱者模式)

參考文獻&#xff1a;https://www.cnblogs.com/libin-1/p/6893712.html https://juejin.im/post/5b2f0769e51d45589f46949e MVVM拆開來即為Model-View-ViewModel&#xff0c;有View&#xff0c;ViewModel&#xff0c;Model三部分組成。View層代表的是視圖、模版&#xff0c;負…

常用的激活函數

1.階躍函數 &#xff0c;值域{0,1} 1 def step_function(x): 2 return np.array(x>0,dtypenp.int) 2.sigmoid函數 &#xff0c;值域(0,1) 1 def sigmoid(x): 2 return 1/(1np.exp(-x)) 3.relu函數 &#xff0c;值域[0&#xff0c;∞&#xff09; 1 def relu(x): 2 …

前端優化-vue-cli4安裝webpack-bundle-analyzer分析包文件

使用vue-cli3創建了一個工程目錄&#xff0c;技術棧為vue-cli3vue-routervuexelement-uiv-chartsaxios。但是等到項目開發完后&#xff0c;發現生成的app.js特別大&#xff0c;接近10M。為了優化項目性能&#xff0c;需要使用webpack-bundle-analyzer分析包文件&#xff0c;找出…

今天剛查到的宏,學習

PVP常用的宏&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&…

不要再問我三次握手和四次揮手

三次握手和四次揮手是各個公司常見的考點&#xff0c;也具有一定的水平區分度&#xff0c;也被一些面試官作為熱身題。很多小伙伴說這個問題剛開始回答的挺好&#xff0c;但是后面越回答越冒冷汗&#xff0c;最后就歇菜了。 見過比較典型的面試場景是這樣的: 面試官&#xff1…

Apache ServiceComb

Apache ServiceComb 開源&#xff0c;全棧微服務解決方案。開箱即用&#xff0c;高性能&#xff0c;兼容流行的生態&#xff0c;多語言支持 ServiceComb是一個微服務框架&#xff0c;提供服務注冊&#xff0c;發現&#xff0c;配置和管理實用程序。 下載 &#xff1a;http://se…

VScode PowerShell運行腳本報錯禁止運行腳本解決方式圖文

今天在新Windows電腦上用VScode的終端PowerShell運行一個腳本的時候&#xff0c; 錯誤 在vscode終端運行vue -V查看版本失敗 PS C:\Users\11388> vue -V vue : 無法加載文件 E:\NodeJs\node_global\vue.ps1&#xff0c;因為在此系統上禁止運行腳本。有關詳細信息&#xf…

多線程的創建方式---繼承Thread和實現Runnable

繼承Thread類創建多線程 1 package cn.ftf.thread;2 /**3 * 多線程實現方式一 繼承Thread實現多線程&#xff0c;繼承Thread&#xff0c;重寫run方法4 * author 房廷飛5 *6 */7 public class StartThread extends Thread{ //對象繼承Thread8 public static void mai…

添加右鍵用Sublime Text3 打開文件和文件夾

最近重新裝了一下系統&#xff0c;右鍵沒有用Sublime Text 3打開的選項了&#xff0c;于是查了一下解決方案 1、環境 Win10和Win7都可以Sublime Text 3最新版本以下為Win10系統下截圖 2、添加右鍵打開文件 Win R&#xff0c;輸入regedit,打開注冊表 找到HKEY_CLASSESS_ROOT…

Windows Mobile Widget Emulator

今天Vimpyboy 在codeplex發布了Windows Mobile Widget Emulator。這是一個用來調試Windows Mobile 6.5 Widget的工具&#xff0c;我在做Windows Mobile 6.5 新功能widget開發 的時候就發現調試Widget很麻煩。也有想法做一個Emulator&#xff0c;其實這個Emulator目標很明顯&…

JS 常用字符串數組遍歷函數方法整理

目錄 一、concat() 二、join() 三、push() 四、pop() 五、shift() 六、unshift() 七、slice() 九、substring() 和 substr() 十、sort 排序 十一、reverse() 十二、indexOf 和 lastIndexOf 十三、every 十四、some 十五、filter 十六、map ES6新增新操作數組的…

AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas

忘記網址了…… 問題&#xff1a; 分析思路與解決方法&#xff1a; 轉載于:https://www.cnblogs.com/bravesunforever/p/11247988.html

vue app掃PC端二維碼登錄

通過接口獲取二維碼唯一標識&#xff0c;例如&#xff1a;qrcodeId通過 qrcodejs2插件生成 二維碼&#xff08;二維碼內容就是 qrcodeId&#xff0c;具體根據APP 需要&#xff09;循環調用接口&#xff0c;查看掃碼狀態&#xff08;app是否掃碼確認登錄&#xff09; //下載插件…

第八章 方法

1. 概述 本章重點講述類型中的各種方法&#xff0c;包括實例構造器、類型構造器、操作符/類型轉換重載、擴展方法、分部方法。 2. 名詞解釋 ① 構造器&#xff1a;是允許將類型的實例初始化為良好狀態的一種特殊方法。 3. 主要內容 3.1 實例構造器和類(引用類型) ① 創建一個引…