Make immediate-query able to yield multiple values
This commit is contained in:
parent
f201bea5c6
commit
a3335800f6
|
@ -645,10 +645,14 @@
|
|||
(define-syntax-rule (define/query-hash id P x ...) (define id (query-hash id P x ...)))
|
||||
(define-syntax-rule (define/query-hash-set id P x ...) (define id (query-hash-set id P x ...)))
|
||||
|
||||
(define-syntax-rule (immediate-query op args ...)
|
||||
(react/suspend (k)
|
||||
(define query-result (op query-result args ...))
|
||||
(on-start (flush!) (k (query-result)))))
|
||||
(define-syntax (immediate-query stx)
|
||||
(syntax-case stx ()
|
||||
[(_ [op args ...] ...)
|
||||
(with-syntax [((query-result ...) (generate-temporaries #'(op ...)))]
|
||||
(syntax/loc stx
|
||||
(react/suspend (k)
|
||||
(define query-result (op query-result args ...)) ...
|
||||
(on-start (flush!) (k (query-result) ...)))))]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
|
|
@ -34,4 +34,4 @@
|
|||
(define/query-value id default (config scope (list 'key $val)) val)]))
|
||||
|
||||
(define (config-ref #:scope [scope ?] key default)
|
||||
(immediate-query query-value default (config scope (list key $val)) val))
|
||||
(immediate-query (query-value default (config scope (list key $val)) val)))
|
||||
|
|
Loading…
Reference in New Issue