JavaScript如何输出Result1和Result2的值
下面的脚本仅输出变量“结果2”的值
如何在不使用console.log的情况下输出“ result1”和“ result2”的值在“ console.log”中
var result;
var result2;
const myPromise = new Promise(
function(resolve)
{
var a1 = 2 + 2;
resolve(a1);
}
);
myPromise
.then(res=>{return result = res;});
result; //output=4
myPromise
.then(res2=>{result = res2+1; return result2=result;});
result2; //output=5
var result;
var result2;
const myPromise = new Promise(
function(resolve)
{
var a1 = 2 + 2;
resolve(a1);
}
);
myPromise
.then(res=>{return result = res;});
result;
myPromise
.then(res2=>{result = res2+1; return result2=result;});
result2;
CEFSHARP中执行JavaScript和Promise评估JavaScript的信息
这是有关在此浏览器主框架上下文中的 。该脚本将异步执行,该方法返回一个任务,将JavaScript的响应封装。 javaScript中脚本执行的结果是承诺。解决,因此即使没有承诺价值观也将被视为承诺。您的JavaScript应返回值。 JavaScript将包裹在立即调用的函数表达式中。当承诺要么触发时/捕获此返回的任务将完成。
var script = "return new Promise(function(resolve, reject) { setTimeout(resolve.bind(null, { a: 'CefSharp', b: 42, }), 1000); });"
JavascriptResponse javascriptResponse = await browser.EvaluateScriptAsPromiseAsync(script);
The script below outputs only the value of variable "result2"
How to output the value of "result1" and "result2" without using console.log, cuz i will put this script in the cefSharp framework of C#, cefSharp does not output data that is in "console.log"
var result;
var result2;
const myPromise = new Promise(
function(resolve)
{
var a1 = 2 + 2;
resolve(a1);
}
);
myPromise
.then(res=>{return result = res;});
result; //output=4
myPromise
.then(res2=>{result = res2+1; return result2=result;});
result2; //output=5
var result;
var result2;
const myPromise = new Promise(
function(resolve)
{
var a1 = 2 + 2;
resolve(a1);
}
);
myPromise
.then(res=>{return result = res;});
result;
myPromise
.then(res2=>{result = res2+1; return result2=result;});
result2;
Here is the info about execute JavaScript and Promise in cefSharp
Evaluate Javascript in the context of this Browsers Main Frame. The script will be executed asynchronously and the method returns a Task encapsulating the response from the Javascript. The result of the script execution in javascript is Promise.resolve so even no promise values will be treated as a promise. Your javascript should return a value. The javascript will be wrapped in an Immediately Invoked Function Expression. When the promise either trigger then/catch this returned Task will be completed.
var script = "return new Promise(function(resolve, reject) { setTimeout(resolve.bind(null, { a: 'CefSharp', b: 42, }), 1000); });"
JavascriptResponse javascriptResponse = await browser.EvaluateScriptAsPromiseAsync(script);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
console.log调用仅显示上一个语句的值,仅此而已。
在承诺功能之外,使用结果可能是一个问题 - 承诺可能会结束。也许想查看
Promise.All
我不确定事物的c#方面,但是正如Javascript所做的那样:
如果要访问承诺的两个结果,您可能有兴趣实施 promise.all
此示例实现现在可以使用所有承诺中的所有结果。
The console.log call just displays the value of the previous statement and nothing more.
Using the result outside the promise function can be a problem - the promise might finish after. Maybe want to look into async/await?
Promise.all does it all
I'm not sure about the C# side of things, but as JavaScript goes:
If you want to access both results of the promises you might be interested in implementing Promise.all
This example implementation can now use all results from all promises.