JavaScript非同期プログラミングの4つの方法
1299 ワード
fn 1()の実行が完了したら、fn 2()を実行したいです.コールバック関数 時間傍受する別の考え方は、イベント駆動モードを採用することである.タスクの実行はコードの順序に依存せず、あるイベントが発生するかどうかに依存します. fn 1.on(‘done’,fn 2)
fn 1がdoneイベントを発生したとき、fn 2を実行する.リリース/購読モード 完了イベントを信号として仮定することができます.「信号センター」があります.タスクの実行が完了したら、信号センターに信号を送ることができます.他のタスクは信号センターに「購読」(subscribe)という信号があります.いつから自分で実行できるか分かります.これは「公開/購読モード」と呼ばれ、また「観察者モード」とも呼ばれています.
このモードは様々な実装があり、以下はBen AlmanのTinPub/Subを採用しています.これはjQueryのプラグインです. Promisesオブジェクト
/*
*callback
*/
function fn1(callback) {
setTimeout(() => {
console.log( fn1, , fn2)
callback()
});
}
function fn2() {
console.log( fn2);
}
fn1(fn2);
fn 1がdoneイベントを発生したとき、fn 2を実行する.
function f1(){
setTimeout(function () {
// f1
// fn1
f1.trigger('done');
}, 1000);
}
このモードは様々な実装があり、以下はBen AlmanのTinPub/Subを採用しています.これはjQueryのプラグインです.
// ,fn2 " "jQuery "done" 。
jQuery.subscribe("done", fn2);
function fn1(){
setTimeout(function () {
// f1
jQuery.publish("done");
//jQuery.publish("done") ,f1 , " "jQuery "done" , f2 。
}, 1000);
}
fn 2は、jQuery.unsubscribe(「done」、f 2)の購読をキャンセルすることもできる.