使用JavascriptCore解析iOS中的Javascript承诺

使用JavascriptCore解析iOS中的Javascript承诺,javascript,ios,swift,javascriptcore,Javascript,Ios,Swift,Javascriptcore,我目前有一些外部的Javascript代码(异步执行的),iOS应用程序可以与之交互,并且可以有条件地评估部分代码。现在,当Javascript函数返回时,它们会向iOS应用程序返回一个需要解决的“承诺”。有没有办法通过JavascriptCore解决iOS中的承诺;或者我在这里打了一场失败的仗,我应该在将值返回到iOS之前解决Javascript中的“所有”承诺吗?看看这个库: 至少作为一个例子 它不会在本机代码中作为js结果来管理js承诺,我认为这是不可能的,但它实现了一种从本机代码管理异步

我目前有一些外部的
Javascript
代码(异步执行的),iOS应用程序可以与之交互,并且可以有条件地评估部分代码。现在,当
Javascript
函数返回时,它们会向iOS应用程序返回一个需要解决的“承诺”。有没有办法通过
JavascriptCore
解决iOS中的承诺;或者我在这里打了一场失败的仗,我应该在将值返回到iOS之前解决
Javascript
中的“所有”承诺吗?

看看这个库: 至少作为一个例子

它不会在本机代码中作为js结果来管理js承诺,我认为这是不可能的,但它实现了一种从本机代码管理异步js调用的方法

如果我没有错的话,管理异步JS调用的主要逻辑是:

  • 当本机代码需要调用async JS方法时,它将本机回调存储到回调注册表中,并为其分配一个标识符
  • 然后调用传递回调标识符的JS方法
  • 当async JS方法结束时(使用Promise或其他方法),它使用相同的回调标识符调用本机代码
  • 这允许本机代码调用存储在注册表中的回调
  • 该库结构良好,允许处理程序注册等,但我认为本机-->JS调用的原始逻辑基本上就是这样