-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Deferred.txt
63 lines (43 loc) · 2.19 KB
/
Deferred.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
*Vital/Async/Promise/Deferred.txt* Deferred style promise
Author : Alisue <[email protected]>
=============================================================================
CONTENTS *Vital.Async.Promise.Deferred-content*
INTRODUCTION |Vital.Async.Promise.Deferred-introduction|
USAGE |Vital.Async.Promise.Deferred-usage|
INTERFACE |Vital.Async.Promise.Deferred-interface|
FUNCTION |Vital.Async.Promise.Deferred-function|
=============================================================================
INTRODUCTION *Vital.Async.Promise.Deferred-introduction*
*Vital.Async.Promise.Deferred* is an deferred style promise implementation.
The deferred style promise become obsolete in JavaScript but it still has
some advantage for writing unit tests which relies on promise feature while
the deferred style promise can resolve/reject from outside of the scope.
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred
=============================================================================
USAGE *Vital.Async.Promise.Deferred-usage*
The code belows create a deferred style promise and resolve synchronously.
It is not possible to write this kind of code with a native promise.
>
let s:Promise = vital#vital#import('Async.Promise')
let s:Deferred = vital#vital#import('Async.Promise.Deferred')
" Create a deferred promise
let d = s:Deferred.new()
" A deferred promise is a superset of a native promise
echo s:Promise.is_promise(d)
" -> 1
" A status of the deferred promise can be changed outside of the
" scope.
call d.resolve('Hello')
<
=============================================================================
INTERFACE *Vital.Async.Promise.Deferred-interface*
-----------------------------------------------------------------------------
FUNCTION *Vital.Async.Promise.Deferred-function*
*Vital.Async.Promise.Deferred.new()*
.new({source})
Create a new deferred style promise.
The instance extends a native promise with the following methods.
resolve([{value}]) Resolve the promise
reject([{reason}]) Reject the promise
=============================================================================
vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl