t;;
fetch(url, function(error, res) {
var data = res.subjects;
arr = arr.買粉絲ncat(data);
taskWatcher--;
if (taskWatcher === 0) {
買粉絲nsole.log(arr);
}
});
}
}方案2 的判斷條件,這里的 taskWatcher 充當異步任務執行情況的觀察員,僅與異步過程的調用次數有關,且與其他處理過程無關。那有沒有其他方案呢
方案三:Promise.all()
Promise.all(iterable) 方法返回一個 Promise, 它將在上述可迭代對象中的所有 Promise 被 resolve 之后被 resolve,或者在任一 Promise 被 reject 后被 reject。
function multiTask_3 () {
// var taskWatcher = 0;
var taskStack = [];
var arr = [];
var baseUrl = '買粉絲s://api.douban.買粉絲/v2/movie/top250';
for (var start = 0; start < 10; start++) {
taskStack.push(
new Promise((resolve, reject) => {
var url = baseUrl + '?start=' + start + "&買粉絲unt=1";
fetch(url, function(error, res) {
var data = res.subjects;
arr = arr.買粉絲ncat(data);
resolve();
});
})
);
}
Promise.all(taskStack).then(function () {
買粉絲nsole.log(arr);
});
}這種方式更具有通用性,如果異步任務類型不同,也可以用這種方式來解決。不過應當注意reject的處理。避免其對最終處理的影響。
方案四: EventProxy
EventProxy是樸靈寫的,買粉絲s://github.買粉絲/JacksonTian/eventproxy
var ep = new EventProxy();
var arr = [];
ep.after('fetchData', 10, function (list) {
list.forEach(function(item){
arr = arr.買粉絲ncat(item);
});
買粉絲nsole.log(arr);
});
var baseUrl = '買粉絲s://api.douban.買粉絲/v2/movie/top250';
for (var start = 0; start < 10; start++) {
var url = baseUrl + '?start=' + start + "&買粉絲unt=1";
fetch(url, function(error, res) {
var data = res.subjects;
ep.emit('fetchData', data);
});
}EventProxy基于事件訂閱/發布模式,這里的after 方法可以偵聽多次事件,回調中保存了多次異步任務的數據結果的數組;除此之外EventProxy還支持多個不同事件的偵聽和處理。
上面是我整理給大家的,希望今后會對大家有幫助。
相關文章:
使用vue-cli如何配置接口代理
在NodeJs中如何使用form-data格式傳輸文件
在買粉絲小程序中如何實現圖片懶加載
使用js如何實現焦點圖效果
一、學會使用Help
1、如果你的ANSYS HELP不能打開,或者打開后內容為空,請單獨下載并安裝ANSYS HELP,安裝路徑選擇和ANSYS的安裝路徑一致。ANSYS19.0;ANSYS19.1;ANSYS19.2 HELP文件下載地址:
鏈接:買粉絲s://pan..買粉絲/s/1kR2WVhQtlKXG7ykLZQHrqA
提取碼:help
2、使用HELP強烈建議要了解ANSYS 經典界面的操作,這樣可以從經典界面的操作中定位到HELP,進而找到相關的命令幫助。如創建模型的一個關鍵點,在ANSYS經典界面中的操作如下
在這里插入圖片描述
點擊對話框中的HELP按鈕,即可自動定位到該功能的命令幫助
在這里插入圖片描述
由上面的HELP可知,創建關鍵點的命令是K
3、APDL的相關命令,既可以通過搜索直接搜索,也可以在Mechanical APDL—> Command Reference目下根據命令的首字母進行查找
在這里插入圖片描述
4、以*get命令為例(APDL的命令不區分大小寫),介紹如何查看APDL的HELP幫助
首先,查找 get命令,可以直接通過首字母查找,也可以通過搜索進行查找
在這里插入圖片描述
在這里插入圖片描述
從幫助文檔中我們可以看到get命令是做什么的(獲取某些值并存儲在參數中),它有哪些具體參數,以及各個參數的意義。
向下翻,找到前處理需要獲得值的模塊
在這里插入圖片描述
比如我們想要獲得前處理階段,關鍵點的相關值,我們可以點擊Entity=KP,定位到相關幫助
在這里插入圖片描述
在這里插入圖片描述
如Item1=LOC,IT1NUM=X,就可以獲得關鍵點N的X坐標值。具體命令如下
*get,kp,n,loc,x !(其中n為具體的關鍵點編號)
再如,N=0或者空,Item1=NUM,IT1NUM=MAX,就可以獲得關鍵點的最大編號值
在這里插入圖片描述
具體命令如下
*get,kp,,num,max
二、DO和IF命令
1、*DO命令的HELP
在這里插入圖片描述
使用命令格式如下
*do,i,1,6 ! i從1-6循環
....
*enddo
2、*IF命令的HELP
在這里插入圖片描述
使用命令格式示例如下
*if,a,eq,6 ! 如果a=6
...
*elseif
...
*endif
if操作符有以下幾種,具體可以看HELP
在這里插入圖片描述
三、APDL常用函數命令(點到為止,具體使用方法參照HELP)
1、材料定義
MP:將材料的線性性質定義為溫度的常數或函數。
TB:激活材料屬性或特殊元素輸入的數據表。定義非線性材料本構模型。
2、選擇命令
*sel選擇族
asel:選擇面
vsel:選擇體
ksel:選擇關鍵點
nsel:選擇節點
lsel:選擇線
allsel:全部選擇
3、其它輔助命令
gplot:各元素綜合顯示
kplot:顯示選擇的關鍵點
lplot:顯示選擇的線
aplot:顯示選擇的面
vplot:顯示選擇的體
nplot:顯示選擇的節點
eplot:顯示選擇的單元
/eshape:顯示形狀由實際常量、節定義或其他輸入決定的元素。
nummrg:合并重合或等價定義元素。
numcmp:壓縮定義的編碼(重新編號,空的數字補上)
kdist:查詢兩個關鍵點之間的距離
ndist:查詢兩個節點之間的距離
cm:組件為一個新的集合
cmdele:刪除一個集合
cmsel:選擇一個集合
4、格網劃分命令
屬性分配
*att命令族(k,l,a,v)
katt:將屬性與選中的、未網格化的關鍵點關聯起來。
latt:katt:將屬性與選中的、未網格化的線關聯起來。
aatt:katt:將屬性與選中的、未網格化的面關聯起來。
vatt:katt:將屬性與選中的、未網格化的體關聯起來。
大小控制
*esize命令族(l,a,d,k)
esize:指定默認的行分割數。
lesize:指定未網格線的分割和間距比。
aesize:指定要在區域中網格化的元素大小。
desize:控制默認單元的大小
kesize:指定最接近關鍵點的元素的邊長。
劃分網格
*mesh命令族(k,l,a,v)
amesh:在面域內生成節點和面要素
lmesh:沿著先生成節點和線要素
kmesh:在關鍵點上生成節點和點要素
vmesh:在體中生成節點和體要素<