非同步方法的序列執行

2021-07-31 18:12:16 字數 1090 閱讀 1477

用於簡單處理兩個事件的序列執行,在事件a執行完成之後,執行函式b。

const events = require('events');

const fs = require('fs');

const emitter = new events.eventemitter();

fs.readfile('../file1.txt','utf-8',function

(err,content) );

emitter.on("file1",function

(content) )

eventproxy可以用於監聽多個事件的執行結果,在事件全部執行完成之後,再操作所有的結果。

//(reaffile1,readfile2)->all()

const eventproxy = require('eventproxy');

const fs = require('fs');

const ep = new eventproxy();

ep.all("file1","file2",function

(file1,file2) );

fs.readfile('../file1.txt','utf-8',function

(err,content) );

fs.readfile('../file2.txt','utf-8',function

(err,content) );

step實現事件之間的序列操作,通過this變數在事件之間傳遞結果。

// readfile1->readfile2->done

const step = require('step');

const fs = require('fs');

step(

function

readfile1

(), function

readfile2

(err,content) ,

function

done

(err,content)

);

非同步函式的序列執行和並行執行

對於非同步函式的序列和並行執行如果處理不好會出現js的 地獄,在這方面async.js是乙個不錯的解決方案,有時為了縮小 體積自己diy乙個 序列執行arr中的函式 var series function arr,callback else process 並行執行arr中的函式 var paral...

parallel方法 非同步並行執行

promise提供了all方法,但是狀態只有2種,第一種是所有promise例項都成功則返回值組成乙個陣列,傳遞給p的 函式 第二種是有乙個例項被rejected,狀態就變成rejected,此時第乙個被reject的例項的返回值,會傳遞給p的 函式。問題 其實我想要所有非同步的結果,不管成功與否,...

使用委託非同步呼叫方法讓程式並行執行

通常情況下,如果需要非同步執行乙個耗時的操作,我們會新起乙個執行緒,然後讓這個執行緒去執行 但是對於每乙個非同步呼叫都通過建立執行緒來進行操作顯然會對效能產生一定的影響,同時操作也相對繁瑣一些。net 中可以通過委託進行方法的非同步呼叫,就是說客戶端在非同步呼叫方法時,本身並不會因為方法的呼叫而中斷...