@@ -61,12 +61,27 @@ static mp_obj_t mp_jsffi_to_js(mp_obj_t arg) {
61
61
}
62
62
static MP_DEFINE_CONST_FUN_OBJ_1 (mp_jsffi_to_js_obj , mp_jsffi_to_js ) ;
63
63
64
+ // *FORMAT-OFF*
65
+ EM_JS (void , promise_with_timeout_ms , (double ms , uint32_t * out ), {
66
+ const ret = new Promise ((resolve ) = > setTimeout (resolve , ms ));
67
+ proxy_convert_js_to_mp_obj_jsside (ret , out );
68
+ });
69
+ // *FORMAT-ON*
70
+
71
+ static mp_obj_t mp_jsffi_async_timeout_ms (mp_obj_t arg ) {
72
+ uint32_t out [PVN ];
73
+ promise_with_timeout_ms (mp_obj_get_float_to_d (arg ), out );
74
+ return proxy_convert_js_to_mp_obj_cside (out );
75
+ }
76
+ static MP_DEFINE_CONST_FUN_OBJ_1 (mp_jsffi_async_timeout_ms_obj , mp_jsffi_async_timeout_ms ) ;
77
+
64
78
static const mp_rom_map_elem_t mp_module_jsffi_globals_table [] = {
65
79
{ MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_jsffi ) },
66
80
67
81
{ MP_ROM_QSTR (MP_QSTR_JsProxy ), MP_ROM_PTR (& mp_type_jsproxy ) },
68
82
{ MP_ROM_QSTR (MP_QSTR_create_proxy ), MP_ROM_PTR (& mp_jsffi_create_proxy_obj ) },
69
83
{ MP_ROM_QSTR (MP_QSTR_to_js ), MP_ROM_PTR (& mp_jsffi_to_js_obj ) },
84
+ { MP_ROM_QSTR (MP_QSTR_async_timeout_ms ), MP_ROM_PTR (& mp_jsffi_async_timeout_ms_obj ) },
70
85
};
71
86
static MP_DEFINE_CONST_DICT (mp_module_jsffi_globals , mp_module_jsffi_globals_table ) ;
72
87
0 commit comments