我可以同步调用过程吗?
can I invoke a procedure synchronously?
这听起来有点疯狂,但是有没有办法同步调用过程?
我正在使用 MobileFirst Platform Foundation 7.1,并且正在 javascript 中为浏览器编写应用程序。我通常通过以下方式调用我的 javascript 适配器:
WL.Client.invokeProcedure({
adapter: 'MyAdapter',
procedure: 'myProcedureName',
parameters: []
}).then(function(res) {
...
});
但在这种特殊情况下,我需要在从服务器获取一些数据后打开另一个 window。由于浏览器在来自异步 ajax 时会阻止 windows,因此我的新 windows 永远不会打开。
A way to solve this would be to do the ajax request sync。 WL.Client api 可以做到这一点吗?有没有办法手动构建请求,这样我就可以自己设置 sync ajax 标志?
PS:在我的例子中,执行同步 ajax 请求会很好,因为我在所有内容之上显示了一个 "Loading ..." 视图,以防止用户在请求完成时进行交互。
WL.Client.connect() 不支持 .then
。此外,从 7.0 开始,您应该使用 REST API 方法 WLResourceRequest
:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/server-side-development-category/
最后,您可以将第二个请求放在第一个请求的 onSuccess
回调中...
这听起来有点疯狂,但是有没有办法同步调用过程?
我正在使用 MobileFirst Platform Foundation 7.1,并且正在 javascript 中为浏览器编写应用程序。我通常通过以下方式调用我的 javascript 适配器:
WL.Client.invokeProcedure({
adapter: 'MyAdapter',
procedure: 'myProcedureName',
parameters: []
}).then(function(res) {
...
});
但在这种特殊情况下,我需要在从服务器获取一些数据后打开另一个 window。由于浏览器在来自异步 ajax 时会阻止 windows,因此我的新 windows 永远不会打开。
A way to solve this would be to do the ajax request sync。 WL.Client api 可以做到这一点吗?有没有办法手动构建请求,这样我就可以自己设置 sync ajax 标志?
PS:在我的例子中,执行同步 ajax 请求会很好,因为我在所有内容之上显示了一个 "Loading ..." 视图,以防止用户在请求完成时进行交互。
WL.Client.connect() 不支持 .then
。此外,从 7.0 开始,您应该使用 REST API 方法 WLResourceRequest
:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/server-side-development-category/
最后,您可以将第二个请求放在第一个请求的 onSuccess
回调中...