(這個內容很早就寫完了,放在了csdn上,把這半截忘記了。。。)
接上節。
在上面的基礎上,我們使用建構函式的方法,把**重新整理一下(結構)。
function chain()
this.next = function()
else output.innertext += '任務全部完成';
} this.start = function()
this.settimeout = function(fn, time)
this.ajax = function()
}
再寫幾個非同步的函式用於測試
function a()
function b()
function c() , 1000);
}function d(text)
function e() ,
success: function()
})}function f() , 1000);
}
測試
var job = new chain(a, b, c, function a(), e, f);
job.start();
完整**測試頁面:
這樣算是基本的功能完成了。根據我的測試,如果要應用到具體的工作中,還是使用promise比較靠譜。而且我寫的這個函式對於ajax settimeout的操作不夠靈活,不可以巢狀,不可以混合使用。但是這些都是可以改進的,即進行更深的匹配修改。實現的本身也可以當做一種不同的思路吧。
乙個非同步讀取並展示的demo:
js非同步之間執行的順序
今天同事問了乙個問題,怎麼讓ajax中的 保持非同步 先執行,再讓普通的function執行。整了個解決辦法 如下 將同步 放入settimeout中,變成非同步,則和ajax中的 同為非同步,則按照非同步的方式來排列執行順序。由此引入非同步之間的執行順序問題!首先常見的非同步一般有 ajax可以非...
setTimeout非同步執行函式this丟失
var prop 100 function parent parent.prototype.get function parent.prototype.show function var child new parent child.show 2.使用es6中的箭頭函式,因為在箭頭函式中this是固...
python 實現非同步執行
網上看到個例子怎樣利用 threading 模組實現非同步執行,自己動手試了試,寫了個裝飾器的例子,很實用。把 async 分離開,放到乙個單獨的模組中,就可以把它當成乙個模組實用 分析一下,下面的例子 定義了乙個裝飾器 async 和 a b 兩個function a 裡面sleep 20s 然後...