Skip to content

信号 $signal

提示

Bob 1.8.0+ 可用

用于发送信号的 API

$signal.new()

初始化一个信号对象

js
var signal = $signal.new()
var signal = $signal.new()

signal.send(any)

发送信号,可以在参数中传一些数据

js
var signal = $signal.new()

// 不需要数据
signal.send()

// 需要传输数据
signal.send({"message": "123"})
var signal = $signal.new()

// 不需要数据
signal.send()

// 需要传输数据
signal.send({"message": "123"})

signal.subscribe(function)

订阅信号,需传入一个函数接受回调,方法会返回一个 disposable 对象,用于取消对信号的订阅。

js
var signal = $signal.new()

// 订阅信号
var disposable = signal.subscribe(function (data) {
    // data 即为发送信号时传输的数据,如果发送信号未传输数据,则为 undefined
    $log.info(`收到信号:data=${data}`)
})

// 取消订阅信号
disposable.dispose()
var signal = $signal.new()

// 订阅信号
var disposable = signal.subscribe(function (data) {
    // data 即为发送信号时传输的数据,如果发送信号未传输数据,则为 undefined
    $log.info(`收到信号:data=${data}`)
})

// 取消订阅信号
disposable.dispose()

signal.removeAllSubscriber()

移除信号的所有订阅者,之前的订阅全部失效。

js
var signal = $signal.new()

signal.subscribe(function (data) {
    $log.info(`收到信号:data=${data}`)
})

// 移除所有订阅制
signal.removeAllSubscriber()
var signal = $signal.new()

signal.subscribe(function (data) {
    $log.info(`收到信号:data=${data}`)
})

// 移除所有订阅制
signal.removeAllSubscriber()