使用 Future 構(gòu)造器

2018-10-24 19:04 更新

創(chuàng)建一個(gè)待定(pending)狀態(tài) promise 對(duì)象

use Hprose\Future;
$promise = new Future();

該 promise 對(duì)象的結(jié)果尚未確定,可以在將來通過 resolve 方法來設(shè)定其成功值,或通過reject 方法來設(shè)定其失敗原因。

創(chuàng)建一個(gè)成功(fulfilled)狀態(tài)的 promise 對(duì)象

use Hprose\Future;
$promise = new Future(function() { return 'hprose'; });
$promise->then(function($value) {
    var_dump($value);
});

該 promise 對(duì)象中已經(jīng)包含了成功值,可以使用 then 方法來得到它。

創(chuàng)建一個(gè)失?。╮ejected)狀態(tài)的 promise 對(duì)象

use Hprose\Future;
$promise = new Future(function() { throw new Exception('hprose'); });
$promise->catchError(function($reason) {
    var_dump($reason);
});

該 promise 對(duì)象中已經(jīng)包含了失敗值,可以使用 catchError 方法來得到它。

上面的 Future 構(gòu)造函數(shù)的參數(shù)可以是無參的函數(shù)、方法、閉包等,或者說只要是無參的 callable 對(duì)象就可以,不一定非要用閉包。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)