Вдохновленный этим (отличным) обсуждением использования обещаний в javascript, я пытаюсь понять, как я могу использовать Deferred для объединения асинхронных и неасинхронные функции, чтобы избежать уплаты налога на обратный вызов при использовании моего кода « Global storage ».
I » У меня есть несколько вопросов, связанных с этим, но я задам их здесь вместе, потому что контекст тот же.
Я не могу понять, как я могу сделать отложенное из того, что не асинхронный, то есть как мне взять значение, заключить его в обещание и вернуть напрямую? ( a -> M
)
Кроме того, как я могу взять асинхронную функцию и обернуть ее так, чтобы она возвращала результат напрямую, но в обещании? ( (a -> b) -> (a -> M )
)
Последний вопрос, для монадических уродов - есть ли стандартное имя для этой функции? [a] -> (a -> M ) -> M