zoukankan      html  css  js  c++  java
  • 使用graalvm.js调用promise

    前提

    1、JDK1.8

    2、引入jar包

    <!--graalvm.js -->
    <dependency>
    	<groupId>org.graalvm.js</groupId>
    	<artifactId>js</artifactId>
    	<version>1.0.0-rc12</version>
    </dependency>
    

    运行

    package com.terwergreen;
    
    import org.graalvm.polyglot.Context;
    import org.graalvm.polyglot.Value;
    
    import java.util.function.Consumer;
    
    
    public class Main {
        private Object renderedObject = null;
    
        private Consumer<Object> fnResolve = object -> {
            renderedObject = object;
            System.out.println("fnResolve=>promiseResolved");
        };
    
        private Consumer<Object> fnRejected = object -> {
            renderedObject = object;
            System.out.println("fnRejected=>promiseRejected");
        };
    
        private void execute() {
            try (Context context = Context.newBuilder("js").allowAllAccess(true).build()) {
                Value eval = context.eval("js",
                        "(async function() { return 'Hello World' });"
                );
                eval.execute().invokeMember("then", fnResolve, fnRejected);
    
                System.out.println("renderedObject = " + renderedObject);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            Main main = new Main();
            main.execute();
        }
    }
    
  • 相关阅读:
    冲刺第七,八天(5月27,28日)
    作业4 阅读《构建之法》 第5.5 第6 第7章
    用户模拟+spec
    第二阶段
    第一次Spring总结
    小组互评和自评
    SPRINT四则运算(第二天)
    开始第一段SPRINT
    四则运算APP
    四则运算 测试与封装 (完善) 5.2 5.3
  • 原文地址:https://www.cnblogs.com/tangyouwei/p/10357340.html
Copyright © 2011-2022 走看看