Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Skulpt-解析时承诺未正确返回_Javascript_Promise_Skulpt - Fatal编程技术网

Javascript Skulpt-解析时承诺未正确返回

Javascript Skulpt-解析时承诺未正确返回,javascript,promise,skulpt,Javascript,Promise,Skulpt,我正在尝试从文本区域获取标准输入,我很快就能找到解决方案,但我发现我的承诺没有正确返回值 function sInput() { return new Promise(function(resolve,reject){ $("#outputField").on("keyup", function(e){ if (e.keyCode == 13){ console.log("test");

我正在尝试从文本区域获取标准输入,我很快就能找到解决方案,但我发现我的承诺没有正确返回值

 function sInput() {
      return new Promise(function(resolve,reject){
         $("#outputField").on("keyup", function(e){
             if (e.keyCode == 13){
                console.log("test");
                resolve("5")
                resolve("random test");
             }
         })
      })
   }
上面的代码是我到目前为止的代码(它不返回“5”或“random test”),但是如果我将函数更改为

 function sInput() {
        return "5"
   }
然后正确返回“5”。为什么我的承诺没有正确返回值?这是从

更多代码:

function runit() { 
   var prog = document.getElementById("inputField").value; 
   var mypre = document.getElementById("outputField"); 
   mypre.innerHTML = ''; 
   Sk.python3 = true;
   Sk.pre = "outputField";

   Sk.configure({ output:outf, 
                  read:builtinRead,
                  inputfun: sInput,
                  inputfunTakesPrompt: true});



   var myPromise = Sk.misceval.asyncToPromise(function() {
       return Sk.importMainWithBody("<stdin>", false, prog, true);
   });

   myPromise.then(function(mod) {
       console.log('success');
   },
       function(err) {
       console.log(err.toString());
   });
} 
函数runit(){
var prog=document.getElementById(“inputField”).value;
var mypre=document.getElementById(“outputField”);
mypre.innerHTML='';
Sk.python3=true;
Sk.pre=“outputField”;
configure({output:outp,
阅读:内置阅读,
输入乐趣:输入,
InputFuntakesCompt:true});
var myPromise=Sk.misceval.asyncToPromise(函数(){
返回Sk.importMainWithBody(“”,false,prog,true);
});
myPromise.then(函数(mod){
console.log('success');
},
功能(err){
log(err.toString());
});
} 

承诺只解决一次。。。第二个解析是没有意义的-第二个
sInput
返回一个承诺,调用它(或
inputFun
)的任何人都知道如何使用承诺吗?(即,
。然后
)我不完全确定这一点,我只是假设它有。然后,因为在链接的示例中,它们的反应似乎是有效的。我使用的假设是.then已实现。为什么只调用一次resolve?如果我连续按enter键,打印(“测试”)将被称为多次不同的承诺每次都有不同的方法来检查.then()是否已实现?我遇到了这个人在这里显示的确切问题(),但它似乎对他有效?