【发布时间】:2016-11-01 20:02:31
【问题描述】:
我使用 JavaScriptCore 框架在 iOS 中执行以下 javascript 代码。 javascript 代码是浏览器化的。
var myCallback = undefined;
*browserify logic*
{
1: [function(require, module, exports) {
var q = require('./user');
var p = new Promise(function(resolved, reject) {
myCallback = function() {
resolved('test');
}
});
p.then(function(x) {printFunc('test');}).catch(function(e){printFunc('test2');});
q();
}, {
"./user": 2
}],
2: [function(require, module, exports) {
function q() {
printFunc("Callback called!");
myCallback();
printFunc("Callback called end!");
}
module.exports = q;
}, {}]
}, {}, [1]);
printFunc 是一个在 Swift 中实现的方法,它只是打印一些东西到控制台。这是实现:
let printFunction : @convention(block) (String) -> String = {input in
print("|\(input)|")
return ""
}
问题是我收到以下错误:
|Callback called!|
Error compiling builtin: Invalid private name '@capabilities'
|Callback called end!|
更奇怪的是,如果我删除打印“Callback called!”和“回调调用结束!”代码执行没有错误,并打印“test”。
你们遇到过这种奇怪的行为吗?这是 Promise 实现的已知错误吗?
【问题讨论】:
标签: javascript ios javascriptcore